我有一組數據,稱爲d
形狀爲(79000,17)
。我想知道是否有一種方法來編寫一個短循環或一個函數強制條件的所有列只選擇列滿足相同條件的行,例如,如果一個循環結合了列i
的條件, d[:,i]<99
?選擇在所有列上滿足相同條件的行
0
A
回答
1
如果您想要一個支持所有條件(甚至是您的條件)的靈活選擇功能,您可以使用下面的代碼。根據需要實現my_filter()。
def select(list_of_rows, filter_function):
result = []
for row in list_of_rows:
if filter_function(row):
result.append(row)
return result
def my_filter(row):
if row[2] > 10:
return True
return False
my_list = [(1, 4, 7), (2, 9, 12), (4, 2, 20), (10, 20, 30), (3, 2, 1)]
result = select(my_list, my_filter)
print result
0
首先製作一個Boolean
陣列的行數的大小,然後將每個時間計算條件在循環中,並與初始布爾陣列相乘。
import numpy as np
bx=np.ones(d.shape[0], dtype=bool)
for i in range(d.shape[1]):
bx*=((d[:,i]>17)*(d[:,i]<22.0))
1
來看你的答案,病情可以檢查元素方面 ,然後你可以跨列軸適用all
減少(即 找到其中的所有列元素,列axis=1
, 是True
行)
In [15]: arr = np.arange(25).reshape(5, 5); arr
Out[15]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
In [16]: ((arr > 7) & (arr < 17)).astype(int)
Out[16]:
array([[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 1, 1],
[ 1, 1, 1, 1, 1],
[ 1, 1, 0, 0, 0],
[ 0, 0, 0, 0, 0]], dtype=bool)
In [17]: ((arr > 7) & (arr < 17)).all(axis=1)
Out[17]: array([False, False, True, False, False], dtype=bool)
如果條件真的是逐列功能,您可以使用 np.apply_along_axis
通過行軸切你的陣列,axis=0
,適用 那功能,所有切片,然後使用相同的所有減少在 輸出:
In [38]: def between_multiples_of_2(x):
return ((x % 2) == 0).cumsum() == 1
....:
In [39]: np.apply_along_axis(between_multiples_of_2, axis=0, arr=arr).astype(int)
Out[39]:
array([[1, 0, 1, 0, 1],
[1, 1, 1, 1, 1],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
In [40]: np.apply_along_axis(between_multiples_of_2, axis=0, arr=arr).all(axis=1)
Out[40]: array([False, True, False, False, False], dtype=bool)
相關問題
- 1. 選擇滿足條件的多個列
- 2. 選擇一列,其中滿足條件
- 3. 選擇行,直到滿足條件
- 4. 如果滿足條件,如何在MySQL中選擇一行,如果條件不滿足,則選擇另一行?
- 5. 選擇所有連接元素的條件滿足的元素
- 6. 選擇基團,其中的所有元素滿足條件
- 7. 對於所有行,選擇滿足條件的第一個條目
- 8. 如何在條件滿足時選擇sql表中的所有行
- 9. 如何選擇列總和滿足條件的隨機行MySQL
- 10. 如果條件滿足,選擇參數
- 11. 選擇,如果條件滿足
- 12. 如何選擇能夠滿足條件
- 13. Python pandas:選擇列滿足某個條件的列
- 14. Oracle - 選擇其中一列滿足謂詞的所有列表
- 15. 選擇具有相同外鍵的所有行,符合條件
- 16. 貓鼬發現所有滿足條件
- 17. 滿足條件的行數
- 18. 選擇行是否滿足第一條件並丟棄下列條件
- 19. 在Python中計算滿足條件的所有條件
- 20. 如何在多列中選擇具有相同條件的行?
- 21. 當其中一行滿足條件時不要選擇行
- 22. 選擇所有滿足來自其他表的約束的行
- 23. SQL選擇所有條件不相同的行
- 24. 我如何選擇滿足特定行中特定列的值的所有行
- 25. 只選擇滿足條件的特定行數
- 26. 如何僅選擇滿足條件的最後一行?
- 27. 如何僅選擇滿足條件的第一行?
- 28. 滿足條件
- 29. SQLite:選擇一行或在沒有行滿足條件時返回NULL
- 30. 上市行不僅當條件滿足