如何在NumPy中建立空陣列/矩陣?
阿新 • • 發佈:2019-01-26
在新增行的情況下,你最好的選擇是建立一個與資料集最終一樣大的陣列,然後向它新增資料 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
可以是列表,陣列或者任何 iterable,只要每個item
具有相同數量的元素。
在這種特殊情況下,你可以簡單地使用(data
是一些儲存矩陣列的iterable )
mat = numpy.array (data)
( 也請注意,使用list
作為變數名可能不是好做法,因為它通過該名稱遮蔽內建型別,這可能導致 Bug 。)