嗨,我有一个19 x 3
矩阵,但我想让它成为513 x 3
矩阵。所以我只需要保留我的19行和剩下的0或1来组成513这可能吗?
您可以使用numpy.pad()
在您的情况下,如果您希望19x3值位于矩阵的中心,您应该使用:
import numpy as np
padded_matrix = np.pad(your_matrix, ((247, 247), (0, 0)))
247
来自(513-19)/2
编辑:如果您想将值保留在前19行,并将矩阵填充在底部,请更改参数:
padded_matrix = np.pad(your_matrix, ((0, 513-19), (0, 0)))
您可以这样做(检查[NumPy]:为索引数组赋值,检查[NumPy]:广播以了解更多详细信息(:
>>> >>> import numpy as np >>> >>> >>> rows_inner, cols_inner = 19, 3 >>> rows_outer, cols_outer = 513, 3 >>> >>> inner = np.arange(rows_inner * cols_inner).reshape(rows_inner, cols_inner) >>> inner.shape, inner.dtype ((19, 3), dtype('int32')) >>> inner array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23], [24, 25, 26], [27, 28, 29], [30, 31, 32], [33, 34, 35], [36, 37, 38], [39, 40, 41], [42, 43, 44], [45, 46, 47], [48, 49, 50], [51, 52, 53], [54, 55, 56]]) >>> >>> >>> outer = np.zeros((rows_outer, cols_outer), dtype=np.int32) >>> outer.shape, outer.dtype ((513, 3), dtype('int32')) >>> outer array([[0, 0, 0], [0, 0, 0], [0, 0, 0], ..., [0, 0, 0], [0, 0, 0], [0, 0, 0]]) >>> >>> >>> outer[0:rows_inner,:] = inner # !!! Simple Assignment !!! >>> >>> outer.shape, outer.dtype ((513, 3), dtype('int32')) >>> outer array([[0, 1, 2], [3, 4, 5], [6, 7, 8], ..., [0, 0, 0], [0, 0, 0], [0, 0, 0]])
在axis=0
:上使用append
arr2 = np.zeros((513-19, 3))
new_arr = np.append(arr1, arr2, axis=0)