python中2d Python中的2D陣列

2021-10-25 19:54:44 字數 1950 閱讀 1311

在python中建立二維陣列的最佳方法是什麼?

我想要的是儲存這樣的值:

x , y , z

這樣我就可以訪問像x[2],y[2],z[2]或x[n],y[n],z[n]這樣的資料,其中n是可變的。我一開始不知道n有多大,所以我想在末尾附加值。

>>> a =

>>> for i in xrange(3):

...     for j in xrange(3):

>>> a

[[0, 1, 2], [1, 2, 3], [2, 3, 4]]

@但是你的**很難閱讀。

根據您所做的,您可能沒有真正的二維陣列。

80%的時候,你有乙個簡單的"類行物件"列表,這可能是正確的序列。

myarray = [ ('pi',3.14159,'r',2), ('e',2.71828,'theta',.5) ]

myarray[0][1] == 3.14159

myarray[1][1] == 2.71828

更常見的是,它們是類、字典、集合的例項,或者是在以前的語言中沒有的更有趣的例項。

myarray = [ , ]

20%的時間你有一本字典,用一對鍵盤

myarray =

很少,你真的需要矩陣嗎?

在python中有大量的集合類。很可能你有比矩陣更有趣的東西。

在python中,通常使用列表來實現這一目的。列表可以任意巢狀,從而允許建立二維陣列。並非每個子列表都需要相同的大小,這樣就解決了您的另乙個問題。看看我鏈結到的例子。

如果您想對陣列做一些嚴肅的工作,那麼應該使用numpy庫。例如,這將允許您執行向量加法和矩陣乘法,對於大型陣列,它比python列表快得多。

但是,numpy要求預先定義大小。當然,您也可以在列表中儲存numpy陣列,例如:

import numpy as np

vec_list = [np.zeros((3,)) for _ in range(10)]

vec_sum = vec_list[0] + vec_list[1]  # possible because we use numpy

print vec_list[10][2]  # prints 3

號但是,由於numpy陣列非常小,我想與使用tuple相比會有一些開銷。這完全取決於你的優先順序。

另請參見另乙個非常相似的問題(除了可變大小)。

我考慮過這個問題,是的,這是乙個有用的補充。不過,numpy需要固定長度的陣列,這不是事實嗎?

是的,謝謝,我修改了答案,以便更清楚地回答這個問題。

我建議你使用這樣的詞典:

arr = {}

arr[1] = (1, 2, 4)

arr[18] = (3, 4, 5)

print(arr[1])

>>> (1, 2, 4)

如果您不確定在字典中定義了乙個條目,那麼在呼叫"arr[x]"時需要乙個驗證機制,例如try except。

如果你想要乙個多維的"陣列",你可以在字典中使用元組作為鍵,比如:arr[(1,20)]=12

如果您關心記憶體占用,python標準庫包含陣列模組;這些陣列包含相同型別的元素。

x=list()

def enter(n):

y=list()

for i in  range(0,n):

return y

for i in range(0,2):

x.insert(i,enter(2))

print (x)

在這裡,我建立了建立一維陣列的函式,並將其作為陣列成員插入到另乙個陣列中。乙個陣列中的多個一維陣列,當n和i的值改變時,u建立多維陣列。

請考慮以下**:

from numpy import zeros

scores = zeros((len(chain1),len(chain2)), float)

歡迎使用堆疊溢位!額外的解釋會提高你的答案。

python什麼意思d python裡d是什麼意思

詳細內容 python中的fd 是turtle模組中的乙個方法。fd 方法的實參是畫素距離。turtle模組 它可以讓你使用海龜圖形 turtle graphics 繪製影象 turtle模組其中的函式 1 turtle.pensize 設定線條的粗細 2 turtle.speed 設定繪製的速度,...

python什麼意思d python裡d是什麼意思

python中的fd 是turtle模組中的乙個方法。fd 方法的實參是畫素距離。turtle模組 它可以讓你使用海龜圖形 turtle graphics 繪製影象 turtle模組其中的函式 1 turtle.pensize 設定線條的粗細 2 turtle.speed 設定繪製的速度,1 10,...

Python中的列表(2)

一 從列表中刪除元素 使用del 語句刪除。books pride and prejudice jane eyre the catcher in the rye print books delbooks 0 print books console 控制台 可以看到,列表中的第乙個元素確實被刪除了。需...