Olá Ana Carolina.
Realmente, em arrays maiores precisamos de algo para identificar a posição dos valores nulos. Aqui vai um exemplo com o método where:
import numpy as np
# Criando um array com alguns valores NaN
array = np.array([1, 2, np.nan, 4, np.nan, 6])
# Identificando os índices dos valores NaN
nan_indices = np.where(np.isnan(array))[0]
print("Índices dos valores NaN:", nan_indices)
Em relação à média dos valores anterior e posterior ao valor nulo para fazer o preenchimento é um pouco mais complicado e teríamos que fazer uma função para percorrer o array encontrando valores nulos. Exemplo de função que encontra valores nulos isolados e realiza o preenchimento com a média do valor anterior e posterior ao nulo:
def interpolate_nan(arr):
for i in range(1, len(arr) - 1):
if np.isnan(arr[i]):
arr[i] = (arr[i - 1] + arr[i + 1]) / 2
return arr
Mas pode ficar tranquila porque, na verdade, é pouco provável que você que implementar coisas do tipo. A ideia do curso foi passar que existe a numpy e que essa biblioteca pode ser usada para calcular coisas quando você não encontrar uma função pronta para a tarefa. Porém, seguindo na formação de Python para Data Science, você vai usar a pandas, construída sobre a numpy e que tem muitas funções que facilitam o processo. Por exemplo, a Pandas tem o método interpolate que faz a mesma tarefa da função aí em cima:
import pandas as pd
# Criando um DataFrame com alguns valores NaN
data = {'A': [1, 2, np.nan, 4, np.nan, 6]}
df = pd.DataFrame(data)
# Realizando a interpolação linear
df['A'] = df['A'].interpolate()
print("DataFrame após interpolação dos valores NaN:")
print(df)