簡體   English   中英

一個簡單的問題:在numpy中,您如何制作多維數組數組?

[英]Simple question: In numpy how do you make a multidimensional array of arrays?

是的,也許我應該為此使用普通的Python列表,但是這里有:

我想要一個9 x 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..

我很高興在這里可以做一些愚蠢/不必要的事情,但這將使我在代碼中像這樣進行結構化變得很容易(因為其中有很多,以后還要進行很多分析)。

謝謝!

請注意,要利用numpy的全部功能,使用3維numpy數組會更好。 將3-d數組拆分為具有1-d值的2-d數組可能會使您的代碼復雜化,並迫使您使用循環而不是內置的numpy函數。

可能值得花時間重構代碼以使用高級3-d numpy數組。

但是,如果這不是一個選擇,則:

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

通過將dtype設置為'object' ,我們告訴numpy允許storageMatrix每個元素都是任意的Python對象。

現在,您必須將numpy數組的每個元素初始化為1-d numpy數組:

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

然后您可以像這樣訪問數組元素:

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

暫定的NumPy教程說,您可以使用逗號運算符聲明2D數組:

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]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM