Я работаю над программой, которая будет создавать данные контуров из числовых массивов, и пытаюсь избежать обращений к matplotlib.
У меня есть массив длины L, который содержит NxN массивов логических значений.Я хочу преобразовать это в массив LxNxN, где, например, «Истина» в первом внутреннем массиве заменяется на «красный», во втором - на «синий» и т. Д.
следующий код работает должным образом:
import numpy as np
import pdb
def new_layer(N,p):
return np.random.choice(a=[False,True],size=(N,N),p=[p,1-p])
a = np.array([new_layer(3,0.5),new_layer(3,0.5),new_layer(3,0.5)]).astype('object')
colors = np.array(["red","green","blue"])
for i in range(np.shape(a)[0]):
b = a[i]
b[np.where(b==True)] = colors[i]
a[i] = b
print(a)
Но мне интересно, есть ли способ сделать то же самое, используя встроенные инструменты Numpy, например, индексацию.Я новичок в Numpy и подозреваю, что есть лучший способ сделать это, но я не могу думать, что это будет.Спасибо.