[英]combining numpy arrays and masking
我有以下問題。 知道使用numpy我可以使用genfromtext讀取數據文件。 然后,我可以使用掩碼(從字典中)從中選擇記錄。
>>> gln = a[a['AA2'] == 'GLN']
>>> gln['mean'].mean()
62.805000305175781
我該如何使用陣列的組合而不是從磁盤讀取陣列?
x=[]
y=[]
ov=[]
aa=[]
a = numpy.array(x,y,ov,aa) <== does not actually work
gln = a[a[3] == 'GLN']
gln['mean'].mean()
我該如何工作?
請記住,在Python中, []
產生的對象通常稱為list
,而不是array
。 因此,考慮到這一點,我假設您真正的問題是“如何將4個獨立的python list
轉換為二維numpy
數組?”
答案取決於您希望list
在數組中的布局方式。 假設每個列表代表一行,則可以執行以下操作:
>>> x = range(0, 4)
>>> y = range(4, 8)
>>> ov = range(8, 12)
>>> aa = range(12, 16)
>>> numpy.array([x, y, ov, aa])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
或者,如果每個列表代表一列,則可以執行以下操作:
>>> numpy.array(zip(x, y, ov, aa))
array([[ 0, 4, 8, 12],
[ 1, 5, 9, 13],
[ 2, 6, 10, 14],
[ 3, 7, 11, 15]])
然后,可以像對genfromtxt
產生的array
一樣使用布爾索引:
>>> a = numpy.array(zip(x, y, ov, aa))
>>> a[a == 1]
array([ 1, 5, 9, 13, 3, 7, 11, 15])
可能是您正在尋找將x
, y
, ov
和aa
到數組中的其他方法。 在這種情況下,您將必須指定列表中的內容以及所需輸出的形狀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.