Скажем, у меня есть массив numpy с формой (2,3), заполненной поплавками.Создание Numpy-массивов без итерации в Python
Мне также нужен массив всех возможных комбинаций значений X и Y (их соответствующее положение в массиве). Есть ли что-то вроде функции simpe для получения индексов в виде кортежа из массива numpy, в котором мне не нужно, чтобы for-loop выполняли итерацию по массиву?
Пример кода:
arr=np.array([np.array([1.0,1.1,1.2]),
np.array([1.0,1.1,1.2])])
indices=np.zeros([arr.shape[0]*arr.shape[1]])
#I want an array of length 6 like np.array([[0,0],[0,1],[0,2],[1,0],[1,1], [1,2]])
#Code so far, iterates though :(
ik=0
for i in np.arange(array.shape[0]):
for k in np.arange(array.shape[1]):
indices[ik]=np.array([i,k])
ik+=1
Теперь после этого, я также хочу сделать массив с длиной массиву «Индексы», содержащий «XYZ координаты», как и в каждом элементе, содержащем «индексы» ХУ и значение Z из 'arr'. Есть ли более простой способ (и, если это возможно без повторного переборе массивов), чем это:
xyz=np.zeros(indices.shape[0])
for i in range(indices.shape[0]):
xyz=np.array([indices[i,0],indices[i,1],arr[indices[i,0],indices[i,1]]