поиск матрицы питона - PullRequest
       29

поиск матрицы питона

1 голос
/ 09 января 2012

Если у меня есть следующая матрица:

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' пока только значения для строк и столбцов.Как бы я это сделал?

Ответы [ 3 ]

3 голосов
/ 09 января 2012

Вы можете использовать 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')
2 голосов
/ 09 января 2012

Если вы имеете в виду поиск 'c':

numpy.where(ar == 'c')
1 голос
/ 09 января 2012
ar = [['0', '1', '2', '3'],
 ['1', 'a', 'b', 'b'],
 ['2', 'b', 'c', 'd']]

print(ar[2][2])

Выше приведено только для доступа к 'c' в столбце 2, строке 2, если вы хотите получить доступ к целому столбцу, вам необходимо:

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