提取一排我試圖使用的Python numpy的:從陣列
t = T[153,:]
一個numpy的陣列中提取的行但我發現,其中的T
的大小是(17576,31), t
的尺寸是(31,) - 尺寸不匹配!
我需要t
具有尺寸(,31)或(1,31),以便我可以將其輸入到我的函數中。我嘗試過轉置,但沒有奏效。
任何人都可以幫助我什麼應該是一個簡單的問題?
非常感謝
提取一排我試圖使用的Python numpy的:從陣列
t = T[153,:]
一個numpy的陣列中提取的行但我發現,其中的T
的大小是(17576,31), t
的尺寸是(31,) - 尺寸不匹配!
我需要t
具有尺寸(,31)或(1,31),以便我可以將其輸入到我的函數中。我嘗試過轉置,但沒有奏效。
任何人都可以幫助我什麼應該是一個簡單的問題?
非常感謝
您可以用切片的符號提取該行:
t = T[153:154,:] # will extract row 153 as a 2d array
例:
T = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
T[1,:]
# array([5, 6, 7, 8])
T[1,:].shape
# (4,)
T[1:2,:]
# array([[5, 6, 7, 8]])
T[1:2,:].shape
# (1, 4)
雖然這看起來奇怪,它實際上是100%的地道。想想你所得到的,當你的索引Python中的列表,你會得到什麼,當你切的列表:
>>> l = list(range(10))
>>> l[4]
4
>>> l[4:5]
[4]
當然,我們看到同樣的事情在一個普通的1-d數組:
>>> a = numpy.arange(10)
>>> a[4]
4
>>> a[4:5]
array([4])
就這樣,按理說,我們會看到一個2-d陣列同樣的事情還有:
>>> a = numpy.arange(25).reshape(5, 5)
>>> a[4]
array([20, 21, 22, 23, 24])
>>> a[4:5]
array([[20, 21, 22, 23, 24]])
形狀反映了這種差異:
>>> a[4].shape
(5,)
>>> a[4:5].shape
(1, 5)
非常感謝你,這是我從Matlab找到轉換困難的區域類型 – jlt199