3 回答

TA貢獻1876條經(jīng)驗 獲得超6個贊
data[...,0:3]
將為您提供第0至2列。
data[...,[0,2,3]]
將為您提供第0、2和3列。
問題是您有一個數(shù)組數(shù)組,而您所引用的問題是關(guān)于2D數(shù)組的,這個問題略有不同。

TA貢獻1906條經(jīng)驗 獲得超3個贊
我知道這個問題已經(jīng)解決了,但是只是想記錄下來,因為它是相關(guān)的-它介于提取numpy數(shù)組中的特定列和從Numpy Rec數(shù)組中選擇行之間(但不完全是如何返回numpy中幾列的視圖)結(jié)構(gòu)化數(shù)組),這是我尋找了一段時間的語法,終于找到了;假設(shè)這是數(shù)據(jù):
import numpy as np
a = np.array([(1.5, 2.5, (1.0,2.0)), (3.,4.,(4.,5.)), (1.,3.,(2.,6.))],
dtype=[('x',float), ('y',float), ('value',float,(2,2))])
我想要類似SQL的東西SELECT x,value FROM a WHERE y>=3.0-也就是說,僅通過字段名稱選擇某些列;根據(jù)某些條件只有一些行;正確的語法是:
a[['x','value']][a['y']>=3.0]
# [(3.0, [[4.0, 5.0], [4.0, 5.0]]) (1.0, [[2.0, 6.0], [2.0, 6.0]])]
雖然a[a['y']>=3.0]效果很好,但請注意:
>>> print a[a['y']>=3.0]['x','value']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: setting an array element with a sequence.
...但是,如果添加了額外的一對括號,例如a[a['y']>=3.0][['x','value']]-似乎都可以再次使用。
添加回答
舉報