2017-05-30 82 views
0
import numpy as np # specify import if you are using it with some other name 

np.array([1, 2, 3]) -> array([1, 2, 3]) 

np.array([1, 2, 3])[None] -> array([[1, 2, 3]]) 

注意第二行有一個額外的維度。有人可以向我解釋這種行爲嗎?這不是乘法。 np.array([1, 2, 3])*[None]將引發錯誤。numpy`np.array()[None]`behavior

回答

2

這與np.array([1, 2, 3])[np.newaxis]完全一樣。 None只是碰巧爲newaxis選擇的值;它可能是任何不是有意義的分片或索引值的東西。

+0

我通常會使用'np.array([1,2,3])[None,:]',說明我在開始時添加了一個新維度。 'numpy'自動添加尾隨的':'。但通常在廣播中不需要「無」,它會自動添加。 – hpaulj

0
>>> numpy.array([1,2,3])[0] # find values at specific index in array 
1 
>>> numpy.array([1,2,3])[1] 
2 
>>> numpy.array([1,2,3])[None] # when you pass None as index it gives you whole list 
array([[1, 2, 3]]) 

要你的困惑,當你正在使用numpy.array(<your-list>)*[value]這將成倍增加與值數組中的所有值。這裏列表中的所有值都是整數,只能與整數或浮點值相乘。 None是Python中的NoneType object(準確地說,這是我對python3的聲明,對python2沒有多少意識),並且不能將整數值與None對象相乘。因爲如果你處理2 * None它沒有任何意義。