Как добавить numpy смешанных типов элементов в другой массив? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть массив numpy, который я использую, если l oop, чтобы отфильтровать некоторые нежелательные записи, и я хочу добавить записи, которые я хочу сохранить, в новый «фильтрованный массив».

from astropy.table import Table
import numpy as np

data = '/home/myname/data.fits'
data = Table.read(data, format="fits") 

ID = np.array(data['id'])
ID.astype(str)

redshift = np.array(data['z'])
redshift.astype(float)

radius = np.array(data['r']) 
radius.astype(float)

mag = np.array(data['magnitude'])
mag.astype(float)

def stack(array1, array2, array3, array4):
    #stacks multiple arrays to have corresponding values next to eachother
    stacked_array = [(array1[i], array2[i], array3[i], array4[i]) for i in range(0, array1.size)]
    stacked_array = np.array(stacked_array)
    return(stacked_array) 

stacked = stack(ID, redshift, radius, mag)

filtered_array = np.array([])

for i in stacked:
    if i.any == 'nan':
        np.delete(stacked[i])
    else:
       np.append(filtered_array, stacked[i]) 

Когда я запускаю это, я получаю следующую ошибку:

IndexError: arrays used as indices must be of integer (or boolean) type

Есть ли способ добавить новый массив без этой ошибки?

1 Ответ

0 голосов
/ 19 февраля 2020

У меня беспорядок получается, мне просто нужно было изменить последнюю строку с:

np.append(filtered_array, stacked[i]) 

на

np.append(filtered_array, i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...