我有一组数据,称为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. 选择每个相同ID的列满足条件的ID
- 2. 选择一列,其中满足条件
- 3. 选择基团,其中的所有元素满足条件
- 4. 对于所有行,选择满足条件的第一个条目
- 5. 如何在条件满足时选择sql表中的所有行
- 6. 如何选择列总和满足条件的随机行MySQL
- 7. 如果条件满足,选择参数
- 8. Python pandas:选择列满足某个条件的列
- 9. 满足条件的行数
- 10. 选择行是否满足第一条件并丢弃下列条件
- 11. 当其中一行满足条件时不要选择行
- 12. 选择所有满足来自其他表的约束的行
- 13. 我如何选择满足特定行中特定列的值的所有行
- 14. 如何仅选择满足条件的最后一行?
- 15. SQLite:选择一行或在没有行满足条件时返回NULL
- 16. 在不同列中选择具有相同条目的行
- 17. 至少有一些列满足条件
- 18. 只有在满足where条件的情况下才能选择最后一行
- 19. 从一组元素中选择一个满足条件的所有元素
- 20. 选择实体的所有记录总是满足指定条件
- 21. 熊猫:选择行针对groupby.sum()满足条件
- 22. 连接条件满足时未选择行?
- 23. 在R,满足的条件
- 24. If语句满足的所有条件,但它不被执行
- 25. postgresql:如何选择满足条件的条目
- 26. 如何选择XPath只有当条件满足
- 27. sql只有满足条件时才选择查询
- 28. 熊猫:选择行如果一个特定的列满足一定条件
- 29. 在SQL Server 2012中选择满足条件x的最大值
- 30. 在MySQL中选择所有具有不同和条件的行