我有一组数据,称为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. 上市行不仅当条件满足