2

我一直在阅读有关 numpy 数组的文档,其中一些没有意义。例如,这里给出的答案建议使用np.vstacknp.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 数组的形状相同,以便我可以进行处理。

谢谢你的帮助。

4

1 回答 1

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])
于 2013-02-15T18:47:30.487 回答