Найти подходящие строки в матрице numpy из 3 - PullRequest
0 голосов
/ 24 апреля 2020

Учитывая куб mxmxm, мне нужно знать строки в 6 гранях, что наименьшее значение в их строке больше, чем данное n.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете фильтровать значения с помощью итерации. Для numpy итерации

code_image

кодов

import numpy as np
data=np.arange(54).reshape(6,3,3)
print(data,data.ndim)

#n : given value to filter
n=10

#to get all the elements that are greater than n
print(data[data>n])

for i in data:
  for row in i:
    if  row[row>n].size :
        print(row)

Позвольте мне знать, если у вас есть какие-либо сомнения.

0 голосов
/ 24 апреля 2020

Чтобы получить различные грани:

faces = np.array([
    x[ 0,  :,  :],
    x[-1,  :,  :],
    x[ :,  0,  :],
    x[ :, -1,  :],
    x[ :,  :,  0],
    x[ :,  :, -1],
])

Теперь сверните последнюю ось измерения:

# No information on orientation provided by OP so always pick axis=-1
row_mins = np.min(faces, axis=-1)

И сохраните только те строки, которые удовлетворяют условию:

valid_rows = faces[row_mins > n]
print(valid_rows)
...