假设我创建了2个numpy数组,其中一个是空数组,另一个是由0组成的大小为1000x1000的数组。
import numpy as np;
A1 = np.array([])
A2 = np.zeros([1000,1000])
当我想改变A2中的一个值时,这似乎可以正常工作。
A2[n,m] = 17
上述代码将把A2中的位置[n][m]的值改为17。
当我用A1尝试上述方法时,我得到这个错误。
A1[n,m] = 17
IndexError: 索引n超出了轴0的范围,尺寸为0
我知道为什么会发生这种情况,因为A1中没有定义的位置[n,m],这很合理,但我的问题如下。
有没有一种方法可以定义一个动态数组,当n或m或两者都大于数组A的边界时,如果输入A[n,m] = somevalue
,则用新的行和列更新数组?
它不一定要在numpy中,任何可以更新数组大小的库或方法都会很好。如果它是一个方法,我可以想象有一个if循环来检查[n][m]是否出界,并做一些处理。
我是学MATLAB出身的,在那里做这个很容易。我试图在numpy.array的文档中找到关于这个问题的内容,但我没有成功。
EDIT:
我想知道在Python中是否有某种方法可以创建一个动态列表,而不仅仅是在numpy库中。从这个问题看来,它在 numpy 中是行不通的在python中使用numpy创建一个动态数组.