如何在NumPy中創建空數組/矩陣?python建立空的ndarray


在添加行的情況下,你最好的選擇是創建一個與數據集最終一樣大的數組,然后向它添加數據 row-by-row:

>>> import numpy
>>> a = numpy.zeros(shape=(5,2))
>>> a
array([[ 0., 0.],
 [ 0., 0.],
 [ 0., 0.],
 [ 0., 0.],
 [ 0., 0.]])
>>> a[0] = [1,2]
>>> a[1] = [2,3]
>>> a
array([[ 1., 2.],
 [ 2., 3.],
 [ 0., 0.],
 [ 0., 0.],
 [ 0., 0.]])

 

次佳解決方案

NumPy數組是一個與列表非常不同的數據結構,它被設計為以不同的方式使用。您對hstack的使用可能非常低效......每當您調用它時,現有數組中的所有數據都將被復制到一個新的數據中。 (append函數將有相同的問題。)如果您想一次構建您的只有一個列的矩陣,最好將它保存在列表中,直到它完成,然后才轉換為一個數組。

例如


mylist = []
for item in data:
    mylist.append(item)
mat = numpy.array(mylist)

item可以是一個列表,一個數組或任何可迭代的結構,只要每個item具有相同數量的元素。在這個特定的情況下(data是一些迭代持有矩陣列),你可以簡單地使用


mat = numpy.array(data) 

(還要注意,使用list作為變量名可能不是一個好的做法,因為它掩蓋了內置類型的名稱,這可能會導致錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM