看来我有NumPy数组列表(type() = np.ndarray
)格式的数据:
[array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]])]
我正在尝试将其放入polyfit函数中:
m1 = np.polyfit(x, y, deg=2)
但是,它返回错误: TypeError: expected 1D vector for x
我认为我需要将数据拼合为:
[0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654 ...]
我已经尝试了通常在列表列表上都可以使用的列表理解,但是按预期的方法却没有效果:
[val for sublist in risks for val in sublist]
最好的方法是什么?
您可以使用numpy.concatenate
,顾名思义,它基本上将这样一个输入列表的所有元素连接到单个NumPy数组中,如下所示-
import numpy as np
out = np.concatenate(input_list).ravel()
如果您希望最终输出为列表,则可以扩展解决方案,如下所示:
out = np.concatenate(input_list).ravel().tolist()
样品运行-
In [24]: input_list
Out[24]:
[array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]]),
array([[ 0.00353654]])]
In [25]: np.concatenate(input_list).ravel()
Out[25]:
array([ 0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654,
0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654,
0.00353654, 0.00353654, 0.00353654])
转换为列表-
In [26]: np.concatenate(input_list).ravel().tolist()
Out[26]:
[0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654,
0.00353654]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句