1. 程式人生 > >如何在NumPy中建立空陣列/矩陣?

如何在NumPy中建立空陣列/矩陣?

在新增行的情況下,你最好的選擇是建立一個與資料集最終一樣大的陣列,然後向它新增資料 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 。)