我一直在阅读关于numpy数组的文档,其中一些没有意义。
例如,给定here的答案建议使用np.vstack
或np.concatenate
来组合数组,就像互联网上的许多其他地方一样。
但是,当我尝试将lists
转换为np.arrays
时,这样做是行不通的:
“
>>> some_list = [1,2,3,4,5]
>>> np.array(some_list)
array([1, 2, 3, 4, 5])
>>> some_Y_list = [2,1,5,6,3]
>>> np.array(some_Y_list)
array([2, 1, 5, 6, 3])
>>> dydx = np.diff(some_Y_list)/np.diff(some_list)
>>> np.vstack([dydx, dydx[-1]])"
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
np.vstack([dydx, dydx[-1]])
File "C:\Python27\lib\site-packages\numpy\core\shape_base.py", line 226, in vstack
return _nx.concatenate(map(atleast_2d,tup),0)
ValueError: array dimensions must agree except for d_0
我能以任何方式做到这一点吗?
在这种情况下我需要的只是让任何顺序的导数与用户给出的X数组的形状相同,这样我就可以进行处理。
感谢您的帮助。
答案 0 :(得分:2)
除非在非常有限的情况下,否则以下情况不起作用:
np.vstack([dydx, dydx[-1]])
此处,dydx
是一个数组,dydx[-1]
是标量。
目前还不清楚你想要实现的目标,但你是否意味着将它们水平堆叠:
np.hstack([dydx, dydx[-1]])
In [38]: np.hstack([dydx, dydx[-1]])
Out[38]: array([-1, 4, 1, -3, -3])