Job*_*obs 4 python arrays numpy
我有一个60000乘200 numpy阵列.我希望通过在右侧添加一列1来使其达到60000.(所以每一行都是[prev,1])与axis = 1连接不起作用,因为看起来连接要求所有输入数组都具有相同的维度.我该怎么做?我找不到任何现有的有用答案,而且大多数答案都是几年前编写的,所以现在情况可能会有所不同.
Hun*_*Hun 16
让我举一个非常简单的例子,它的尺寸要小得多.原则应该是一样的.
a = np.zeros((6,2))
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
b = np.ones((6,1))
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
np.hstack((a,b))
array([[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
Sto*_*one 11
使用 numpy 索引技巧将一维向量附加到二维数组
a = np.zeros((6,2))
# array([[ 0., 0.],
# [ 0., 0.],
# [ 0., 0.],
# [ 0., 0.],
# [ 0., 0.],
# [ 0., 0.]])
b = np.ones(6) # or np.ones((6,1))
#array([1., 1., 1., 1., 1., 1.])
np.c_[a,b]
# array([[0., 0., 1.],
# [0., 0., 1.],
# [0., 0., 1.],
# [0., 0., 1.],
# [0., 0., 1.],
# [0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
在覆盖下所有stack
变体(包括append
和insert
)最终都会执行concatenate
. 他们只是在它之前进行了某种数组重塑。
In [60]: A = np.arange(12).reshape(3,4)
In [61]: np.concatenate([A, np.ones((A.shape[0],1),dtype=A.dtype)], axis=1)
Out[61]:
array([[ 0, 1, 2, 3, 1],
[ 4, 5, 6, 7, 1],
[ 8, 9, 10, 11, 1]])
Run Code Online (Sandbox Code Playgroud)
在这里,我制作了一个 (3,1) 数组,以匹配 (3,4) 数组。如果我想添加一个新行,我会创建一个 (1,4) 数组。
虽然这些变化很方便,但如果您正在学习,您应该熟悉concatenate
构建在维数和必要形状上匹配的数组的各种方法。
归档时间: |
|
查看次数: |
21437 次 |
最近记录: |