如何使用 Python 在数组的所有第三列中找到确切的值?
How I can find exact value in all of third column of array using Python?
如果我有这样一个 Numpy 数组:
array([0, 0, 0]
[0, 0, 1]
[0, 1, 2]
[0, 1, 3]
[1, 0, 4]
[1, 0, 5]
[1, 1, 6]
[1, 1, 7])
我尝试使用
if c==1 in range(X[:,2]):
print 'yes'
但出现错误
TypeError: only length-1 arrays can be converted to Python scalars
是否可以使用切片和 if
语句找到 c==1
?
您可以在此处使用布尔索引(而不是循环并使用 if
)。在这里,您可以使用 True
/False
值的数组来挑选您想要的行或列或数组的值。
在第三列中查找带有 1
的行需要使用的布尔数组是这样的:
>>> X[:, 2] == 1
array([False, True, False, False, False, False, False, False], dtype=bool)
这 return 是一个新数组,每行 X
都有一个值。如果第三列的值为 1
,则它包含 True
,否则包含 False
。
(您可以看到,如果您循环遍历第三列的值以查找 1
,就会得到这个结果。)
到return第X
的第3列1
的行,只需使用这个布尔数组索引X
:
>>> X[X[:, 2] == 1]
array([[0, 0, 1]])
因为x[:,2]
给你第三列的元素数组
>>> import numpy as np
>>> x = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 2], [0, 1, 3], [1, 0, 4], [1, 0, 5], [1, 1, 6], [1, 1, 7]])
>>> x
array([[0, 0, 0],
[0, 0, 1],
[0, 1, 2],
[0, 1, 3],
[1, 0, 4],
[1, 0, 5],
[1, 1, 6],
[1, 1, 7]])
>>> x[:,2]
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> if 1 in x[:,2]:
... print("yes")
...
yes
像这样效率最高
>>> if np.any(x[:, 2] == 1):
... print("yes")
...
yes
>>>
如果我有这样一个 Numpy 数组:
array([0, 0, 0]
[0, 0, 1]
[0, 1, 2]
[0, 1, 3]
[1, 0, 4]
[1, 0, 5]
[1, 1, 6]
[1, 1, 7])
我尝试使用
if c==1 in range(X[:,2]):
print 'yes'
但出现错误
TypeError: only length-1 arrays can be converted to Python scalars
是否可以使用切片和 if
语句找到 c==1
?
您可以在此处使用布尔索引(而不是循环并使用 if
)。在这里,您可以使用 True
/False
值的数组来挑选您想要的行或列或数组的值。
在第三列中查找带有 1
的行需要使用的布尔数组是这样的:
>>> X[:, 2] == 1
array([False, True, False, False, False, False, False, False], dtype=bool)
这 return 是一个新数组,每行 X
都有一个值。如果第三列的值为 1
,则它包含 True
,否则包含 False
。
(您可以看到,如果您循环遍历第三列的值以查找 1
,就会得到这个结果。)
到return第X
的第3列1
的行,只需使用这个布尔数组索引X
:
>>> X[X[:, 2] == 1]
array([[0, 0, 1]])
因为x[:,2]
给你第三列的元素数组
>>> import numpy as np
>>> x = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 2], [0, 1, 3], [1, 0, 4], [1, 0, 5], [1, 1, 6], [1, 1, 7]])
>>> x
array([[0, 0, 0],
[0, 0, 1],
[0, 1, 2],
[0, 1, 3],
[1, 0, 4],
[1, 0, 5],
[1, 1, 6],
[1, 1, 7]])
>>> x[:,2]
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> if 1 in x[:,2]:
... print("yes")
...
yes
像这样效率最高
>>> if np.any(x[:, 2] == 1):
... print("yes")
...
yes
>>>