Python 用另一个';for循环中的s值
我在用Python 用另一个';for循环中的s值,python,numpy,Python,Numpy,我在用numpy做一些蠢事。试图通过for循环用另一个数组的值填充一个numpy数组,如下所示: for i in range(0,9998): a[i] = b[i] * c[i] 我得到以下错误: “TypeError:'numpy.float64'对象不支持项分配” 顺便说一句,我需要这个循环(而不是仅仅乘以没有索引的数组),因为b和c是比我想要的a更长的数组,而且我找不到一种使numpy数组更短的优雅方法。提前感谢您的建议 您可以将b和c的切片相乘。就是 a = b[:9999
numpy
做一些蠢事。试图通过for循环用另一个数组的值填充一个numpy
数组,如下所示:
for i in range(0,9998):
a[i] = b[i] * c[i]
我得到以下错误:
“TypeError:'numpy.float64'对象不支持项分配”
顺便说一句,我需要这个循环(而不是仅仅乘以没有索引的数组),因为b和c是比我想要的a更长的数组,而且我找不到一种使numpy数组更短的优雅方法。提前感谢您的建议 您可以将b和c的切片相乘。就是
a = b[:9999] * c[:9999]
将b
中的前9999项乘以c
中的前9999项,并将值存储在a
引用的长度为9999的数组中
如果a
是要为其分配特定值的现有数组,则需要执行以下操作
a[:9999] = b[:9999] * c[:9999]
我怀疑你在做这样的事情:
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
如果你想让这种循环起作用。如果
b
和c
比你想要的a
长,那么切片不合适吗?这可能有助于提供更多关于您在这里尝试做什么的信息。你能提供完整的回溯吗?你是如何初始化a的?也许“a”已经被定义为一个numpy.float64实际上要做OP显示你需要做的事情a[:9999]=b[:9999]*c[:9999]
。否则它只会创建一个新的a
并“删除”旧的。但我想这就是产生错误的原因。
a = np.zeros(10000,), dtype=float)