В массиве numpy как найти индексы для всех строк, в которых есть только ненулевые записи . Например в массиве:
A = np.array([[ 1, 0, 5],
[25, 2, 0],
[ 7, 8, 9],
[ 0, 0, 4],
[11, 14, 15]])
Я хотел бы иметь [2,4] в качестве вывода, так как строки 2 и 4 являются единственными строками, где все записи отличны от нуля.
В настоящее время я использую
B = A[np.all(A != 0, axis=1)]
Получить массив, где все строки с хотя бы одним нулем были отброшены. Но мне нужно найти индексы (т.е. 2 и 4).
2 ответа
Ваш метод должен работать с небольшим изменением, как показано ниже:
np.where(np.all(A != 0, axis=1))[0].tolist()
Out[284]: [2, 4]
In [1]: A = np.array([[ 1, 0, 5],
[25, 2, 0],
[ 7, 8, 9],
[ 0, 0, 4],
[11, 14, 15]])
In [2]: Indx1 = np.all(A != 0, axis=1)
print Indx1
Out[2]: Indx1 = [False False True False True]
In [3]: Indx2 = np.where(Indx1==True)
print Indx2
Out[3]: (array([2, 4]),)
In [4]: Indx = A[Indx2[0]]
print Indx
Out[4]: [2 4]
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.