我有以下列表:
[50.0, 100.0, 150.0, 5.0, 200.0, 300.0, 10.0, 400.0]
并且我想使用 : 分隔符合并列表中的项目,以创建以下列表:
[50.0, 100.0:150.0:5, 200.0:300.0:10.0, 400.0]
我想在 numpy.r_ 中使用新列表。我已经将我的列表从字符串转换为 float ,所以我想保留 float 并在适当的索引之间添加 : 分隔符。我遇到的问题是,如果我想要 float ,我无法转换 100.0:150.0:5 间隔值,并且使用我的浮点值,我无法在 中添加: 分隔符。谁能指出我正确的方向?
请您参考如下方法:
你不能用 : 分隔数字而不用 "" 包裹它们(即作为字符串)。但是,您可以使用 slice 执行您想要的操作:
s = [50.0, 100.0, 150.0, 5.0, 200.0, 300.0, 10.0, 400.0]
it = iter(s[1:-1])
s[1:-1] = map(slice, *(it,)*3)
print(s)
# [50.0, slice(100.0, 150.0, 5.0), slice(200.0, 300.0, 10.0), 400.0]
现在可以与 np.r_ 和 np.concatenate 一起使用,如下所示:
>>> np.concatenate([np.r_[i] for i in s])
array([ 50., 100., 105., 110., 115., 120., 125., 130., 135.,
140., 145., 200., 210., 220., 230., 240., 250., 260.,
270., 280., 290., 400.])
这会产生您想要的结果。
