我正在用numpy
做一些愚蠢的事。尝试通过for循环使用来自另一个numpy
数组的值填充一个for i in range(0,9998):
a[i] = b[i] * c[i]
数组,如下所示:
.bbox
我收到以下错误:
“TypeError:'numpy.float64'对象不支持项目分配”
顺便说一句我需要这个循环(而不是只是将数组乘以没有索引),因为b和c是更长的数组然后我想要一个,而我找不到一种优雅的方法来缩短numpy数组。提前感谢您的建议!
答案 0 :(得分:0)
您可以将b和c的切片相乘。也就是说,
a = b[:9999] * c[:9999]
将b
中的前9999项乘以c
中的前9999项,并将值存储在a
引用的长度为9999的数组中。
如果a
是您要为其指定特定值的现有数组,则需要执行
a[:9999] = b[:9999] * c[:9999]
答案 1 :(得分:0)
我怀疑你做的是这样的事情:
In [281]: a=np.float64(0)
In [282]: a[0]=2
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-282-ed5200211ec0> in <module>()
----> 1 a[0]=2
TypeError: 'numpy.float64' object does not support item assignment
你需要从像
这样的东西开始a = np.zeros(10000,), dtype=float)
如果您希望这种循环起作用。