2017-02-21 92 views
2

我對使用numpy做矢量化感到困惑。使用numpy的Python數組

特別是,我有這種形式的矩陣:類型的 <type 'list'>

[[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]

如何使它看起來像下面使用numpy的?

[[ 0.0 0.0 0.0  0.0 ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1  2  3  4 ]] 

是的,我知道我可以用做:

np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

但我有一個很長的矩陣,我不能就這麼打出來一樣,每個行。當我有一個非常長的矩陣時,我該如何處理這個案例?

+0

np.array([[0.0,0.0,0.0,0.0],[0.02,0.04,0.0325,0.04],[1,2,3,4]]) – Erotemic

+0

您好Erotemic,你能請參閱我的更新? – wrek

+0

你如何獲得你不想輸入的矩陣?它現在以什麼樣的形式存在(例如,我有一個數組,一個CSV文件,一個生成器函數)? – Marat

回答

1

假設你開始一個大陣,爲什麼不把它分割成大小合適的陣列(n):

splitted = [l[i:i + n] for i in range(0, len(array), n)] 

,並從該矩陣:

np.array(splitted) 
+0

你可以使用'np.array(A).reshape'來更快地獲得這個表單。 – languitar

1

如果您'你說你有一個存儲在Python對象A中的列表列表,你需要做的就是調用np.array(A),它將使用A的元素返回一個numpy數組。否則,您需要指定您的數據現在以何種形式來闡明您希望如何加載數據。

2

這不是一個類型列表矩陣,它是一個包含列表的列表。你可能會認爲它爲基體,但到Python它僅僅是一個列表

alist = [[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]] 

arr = np.array(alist) 

作品只是一樣

arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

這將創建二維數組,形狀(3,4)和D型浮動

In [212]: arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

In [213]: arr 
Out[213]: 
array([[ 0. , 0. , 0. , 0. ], 
     [ 0.02 , 0.04 , 0.0325, 0.04 ], 
     [ 1. , 2. , 3. , 4. ]]) 
In [214]: print(arr) 
[[ 0.  0.  0.  0. ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1.  2.  3.  4. ]]