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