假设我有一个数组 x = np.array(3),它的 x.ndim == 0。如何为这个数组分配一个新值?x[0] = 2 会导致 IndexError 错误,x[:] = 2 也是一样。请帮我解决这个问题。
x.flat
来完成,它会返回一个np.flatiter
实例:import numpy as np
x = np.array(3)
x.flat[:] = 2
# or x.flat[0] = 2
x[...] = 2
x[()] = 2
ndarray.put
)似乎存在微妙的差异:比较一下类型为对象且维度为零的数组 arr = np.empty([], dtype=object)
的一个极端例子;以下几种方式看起来并不是可互换的:a)arr [()] = np.array([1, 2, 3])
,b)arr[...] = np.array([1, 2, 3])
,c)arr.flat[:] = np.array([1, 2, 3])
,d)arr.flat[0] = np.array([1, 2, 3])
,e)arr.put(0, np.array([1, 2, 3]))
。 - iutlu我将使用put
x.put(0,2)
x
Out[91]: array(2)
.flat
;是否有一些情况下.put
更好,还是只是风格上的偏好?我想如果你使用mode="wrap"
或mode="clip"
的话? - Nathan
x[...]=2
和x[()]=2
可能会起作用。 - hpaulj