我正在使用 polyfit 函数向我的数据集添加趋势线。因为我得到了很多数据集(比这里找到的四个例子多得多),我想创建一个 for 循环来检查数据的维度——正如我们所知,polyfit-function 只接受 1- D 数据。我使用的新手方法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()
但是由于我有很多数据集,我会更好(在我看来,也许是愚蠢的头脑中)在检查维度的同时遍历它。
如果有人能抽出时间帮助我,我将不胜感激。如果有人能解释我在 for 循环中做错了什么,我也将不胜感激,以便我更好地理解它。
慕慕森
相关分类