python - Numpy:添加行和列

标签 python arrays numpy

如何向 numpy 数组添加一行和一列。该数组的形状为 (480,639,3),我想要形状为 (481,640,3)。新的行和列应填充零,如下所示:

[43,42,40],         ...        [64,63,61], [0,0,0]
   ...              ...            ...     [0,0,0]
[29,29,29],         ...        [38,37,35], [0,0,0]
[0,0,0], [0,0,0]    ...                    [0,0,0]

要添加新列,我这样做:

b = numpy.zeros((480,640,3), dtype = int)
b[:,:-1] = old_arry

但是我如何添加一行?我必须使用循环还是存在更好的方法来做到这一点?

最佳答案

您可以使用pad

>>> old = np.random.random_integers(0, 100, size=(480, 640))
>>> np.pad(old, pad_width=((0, 1), (0, 1)), mode='constant')
array([[ 66,  22,  51, ...,  18,  15,   0],
       [ 28,  12,  43, ...,   8,  38,   0],
       [ 55,  43,  89, ...,  67,  58,   0],
       ...,
       [ 17,  25, 100, ...,  12,  52,   0],
       [ 97,  59,  82, ...,  38,  97,   0],
       [  0,   0,   0, ...,   0,   0,   0]])
>>> np.pad(old, pad_width=((0, 1), (0, 1)), mode='constant').shape
(481, 641)
>>>

您也可以将其写为 np.pad(old, ((0, 1), (0, 1)), mode='constant'),即没有 pad_width 关键字。要为填充区域设置不同的值,请参阅文档中的 constant_values 参数。

关于python - Numpy:添加行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344966/

相关文章:

python - django View 中查询字符串比较失败。为什么?

python - 从 Arduino 到 RPi 的气压计数据。 readline() 的 Python 错误

Python JSON 编码器将 NaN 转换为 null

python - SciPy:将 1/0 稀疏矩阵转换为 0/1 稀疏矩阵

python - numpy中不同形状数组之间的乘法

python - 在Python中按时间进行 Elasticsearch Lucene查询

python - Dask中延迟函数和正常函数的区别

JavaScript - 基于数组计算值

c++ - 动态数组调整大小函数问题

java - 检查数组中的特定整数