numpy.ndarray documentation 指出:
我对这里的形容词通常感到惊讶。我认为 ndarray 总是固定大小。何时 ndarray 的大小不固定?
最佳答案
您可以使用 ndarray.resize 更改 ndarray 的大小。
我没有广泛使用它,所以我不能说优点或缺点。
然而,看起来很简单
>>> a = ones(3)
>>> a.resize(1)
>>> a
array([ 1.])
但是,它似乎经常引发错误
>>> a.resize(3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-34-bc3af9ce5259> in <module>()
----> 1 a.resize(3)
ValueError: cannot resize an array that references or is referenced
by another array in this way. Use the resize function
这些可以通过传入
refcheck=False
来抑制。这告诉 numpy 你知道你在做什么,它不需要检查没有其他对象正在使用相同的内存。当然,如果不是这种情况,这可能会导致问题。
>>> a.resize(3, refcheck=False)
>>> a
array([ 1., 0., 0.])
>>> a.resize((2, 2), refcheck=False)
>>> a
Out[39]:
array([[ 1., 0.],
[ 0., 0.]])
关于python - 何时 ndarray 的大小不固定?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53614874/