简单的问题:在numpy中如何创建多维数组?

qni6mghb  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(163)

好吧,也许我应该使用普通的Python列表,但这里有:
我想要一个9乘4的多维数组/矩阵(不管是什么),我想在其中存储数组。这些数组将是一维的,长度为4096。
所以我希望能够像这样

column = 0                                    #column to insert into
row = 7                                       #row to insert into
storageMatrix[column,row][0] = NEW_VALUE
storageMatrix[column,row][4092] = NEW_VALUE_2
etc..

我很感激我在这里做了一些有点愚蠢/不必要的事情,但是在我的代码中这样构造它会让我更容易(因为有很多这样的东西,还有很多分析要做)。
谢谢你!

gv8xihay

gv8xihay1#

请注意,要充分利用numpy的功能,最好使用三维numpy数组。将三维数组拆分为具有一维值的二维数组可能会使代码复杂化,并迫使您使用循环而不是内置的numpy函数。
花时间重构代码以使用上级的3-d numpy数组可能是值得的。
但是,如果这不是一个选项,那么:

import numpy as np
storageMatrix=np.empty((4,9),dtype='object')

通过将dtype设置为'object',我们告诉numpy允许storageMatrix的每个元素是任意的Python对象。
现在你必须将numpy数组的每个元素初始化为一维numpy数组:

storageMatrix[column,row]=np.arange(4096)

然后您可以像这样存取数组元素:

storageMatrix[column,row][0] = 1
storageMatrix[column,row][4092] = 2
6tqwzwtp

6tqwzwtp2#

Tentative NumPy Tutorial表示您可以使用逗号运算符声明一个二维数组:

x = ones( (3,4) )

和索引到二维数组中,如下所示:

>>> x[1,2] = 20
>>> x[1,:]                             # x's second row
array([ 1,  1, 20,  1])
>>> x[0] = a                           # change first row of x
>>> x
array([[10, 20, -7, -3],
       [ 1,  1, 20,  1],
       [ 1,  1,  1,  1]])

相关问题