如何将混合元素类型的numpy追加到另一个数组



我有一个numpy数组,我正在使用if循环过滤掉一些不需要的条目,我想将要保留的条目附加到一个新的"已过滤数组"中。

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

有没有任何方法可以在不出现此错误的情况下追加到新数组?

我一团糟,结果我只需要更改最后一行:

np.append(filtered_array, stacked[i]) 

np.append(filtered_array, i)

最新更新