Я работаю с функцией polyfit, чтобы добавить линию тренда в мой набор данных.Так как я получил много наборов данных (намного больше, чем четыре примера, найденных здесь), я хотел бы сделать цикл for, чтобы проверить размеры данных - как мы знаем, функция polyfit принимает только 1-Буду данным.Мой новичок в использовании np.ravel()
выглядит примерно так:
import numpy as np
data_a = np.array([1, 2, 3, 4, 5, 6])
data_b = np.array([10, 20, 30, 40, 50, 60])
data_c = np.transpose(np.array([[1, 2, 3, 4, 5, 6]]))
data_d = np.array([[10, 20, 30, 40, 50, 60]])
for items in (data_a, data_b, data_c, data_d):
if items.ndim == 1:
print('It is an 1-D array -- no action needed.')
print(items.ndim)
elif items.ndim == 2:
print('It is an 2-D array, please do not be alarmed, I will convert it for you.')
items.ravel()
print(items.ndim)
else:
print('It contains more than two dimensions.')
print(data_a.ndim)
print(data_b.ndim)
print(data_c.ndim)
print(data_d.ndim)
Если бы я использовал np.ravel()
в любом наборе данных вне цикла for, он работает так, как задумано.Например:
data_c_2 = data_c.ravel()
data_d_2 = data_d.ravel()
Но так как у меня довольно много наборов данных, было бы лучше (в моем, возможно, идиотском уме) перебрать его, проверяя размеры.
IБуду очень признателен, если кто-нибудь сможет найти время, чтобы помочь мне.Я также был бы признателен, если бы кто-то мог объяснить, что я делаю неправильно в цикле for, чтобы лучше понять это.
Спасибо.