首页 > 解决方案 > 如何将切片数组连接到 Python 中的列表

问题描述

我正在尝试将切片数组合并到 Python 中的列表,但我得到一个

 error: ValueError: operands could not be broadcast together with shapes `(4,)` `(2,)` . 

这是我的代码:

y = np.array([5,3,2,4,6,1])
row = y[2:6] + np.array([0,0])

我期望得到一个 2 项向左移动的向量,最后 2 项被分配给 0。

标签: pythonnumpynumpy-ndarrayarray-broadcastingnumpy-slicing

解决方案


要连接数组,请使用np.concatenate

In [93]: y = np.array([5,3,2,4,6,1])
In [94]: y[2:6]
Out[94]: array([2, 4, 6, 1])
In [95]: np.concatenate((y[2:6], np.array([0,0])))
Out[95]: array([2, 4, 6, 1, 0, 0])

+是列表的连接。对于数组是加法(数字总和)。

您的问题不应该使用list并且array草率。它们是不同的东西(在 python/numpy 中)并且会产生令人困惑的答案。


推荐阅读