如何为Numpy数组的每一行添加相同值(以添加1为例)
为Numpy数组每行末尾添加数值1
我有如下Numpy数组:
import numpy as np arr = np.array([ [0.67058825, 0.43529415, 0.33725491], [0.01568628, 0.30980393, 0.96862751], [0.24705884, 0.63529414, 0.29411766], [0.27843139, 0.63137257, 0.37647063], [0.26274511, 0.627451, 0.33333334], [0.25098041, 0.61960787, 0.30980393] ])
需要为每行末尾添加一个1,得到目标数组:
[[0.67058825 0.43529415 0.33725491 1] [0.01568628 0.30980393 0.96862751 1] [0.24705884 0.63529414 0.29411766 1] [0.27843139 0.63137257 0.37647063 1] [0.26274511 0.627451 0.33333334 1] [0.25098041 0.61960787 0.30980393 1]]
解决方案
方法1:使用np.hstack
创建一个和原数组行数相同、列数为1的全1数组,再与原数组水平拼接:
result = np.hstack((arr, np.ones((arr.shape[0], 1))))
方法2:使用np.column_stack
和hstack逻辑一致,写法更简洁:
result = np.column_stack((arr, np.ones(arr.shape[0])))
方法3:使用np.concatenate
指定轴为1(水平方向)完成拼接:
result = np.concatenate((arr, np.ones((arr.shape[0], 1))), axis=1)
方法4:扩展数组维度后赋值
先扩展原数组的列数,再为新增列统一赋值为1:
result = np.zeros((arr.shape[0], arr.shape[1]+1)) result[:, :-1] = arr result[:, -1] = 1
内容的提问来源于stack exchange,提问作者tempaccountforissue
相关产品推荐
相关产品推荐

