У меня есть код, который я использую, чтобы попытаться отфильтровать массивы, в которых отсутствуют значения, как показано здесь:
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['M'])
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 not i.any == 'nan':
np.insert(filtered_array, i[0], axis=0)
Последнее для l oop - это то, где у меня возникают трудности. Я хочу вставить строки из моего сложенного массива в отфильтрованный массив, если он содержит всю информацию (в некоторых строках отсутствует красное смещение, в других отсутствует величина и т. Д. c ...). Как бы я мог l oop по моему массиву и отфильтровать все строки, которые имеют все 4 значения, которые я хочу? Я продолжаю получать эту ошибку в настоящее время.
TypeError: _insert_dispatcher() missing 1 required positional argument: 'values'