Python 矩阵搜索

1 投票
3 回答
6806 浏览
提问于 2025-04-17 09:50

如果我有以下这个矩阵:

import numpy

ar = numpy.array((('0','1','2','3'), ('1','a','b','b'), ('2','b','c','d')), str)
print(ar)

输出:

[['0' '1' '2' '3']
 ['1' 'a' 'b' 'b']
 ['2' 'b' 'c' 'd']]

我想要找到在满足特定行和列条件下的值。矩阵的第一行是列名(可能是字符串),而左边的第一列是所有的行名(也可能是字符串)。所以如果我在列上有'2',在行上也有'2',我就能得到'c'。我现在还不知道'c'是什么,只知道行和列的值。我该怎么做呢?

3 个回答

1
ar = [['0', '1', '2', '3'],
 ['1', 'a', 'b', 'b'],
 ['2', 'b', 'c', 'd']]

print(ar[2][2])

上面的内容只是为了获取第二列第二行的'c',如果你想获取整列的数据,你需要这样做:

for i in range(0, 3):
    print(ar[2][i])
2

如果你是指搜索 'c':

numpy.where(ar == 'c')
3

你可以使用 numpy.where

In [7]: numpy.where(ar == 'c')
Out[7]: (array([2]), array([2]))

还有:

In [8]: ar[numpy.where(ar == 'c')]
Out[8]: 
array(['c'], 
      dtype='|S1')

撰写回答