为了账号安全,请及时绑定邮箱和手机立即绑定

添加列 Numpy 数组 python

添加列 Numpy 数组 python

桃花长相依 2023-07-05 10:18:48
我对 python 非常陌生,并且对 R 非常熟悉,但使用 Numpy 数组我的问题非常简单:观察:我有一个浮点类型的维度为 (100,2) 的数组 X,我想添加第三列,最好添加到维度为 (100,3) 的新 Numpy 数组中,以便第三列 = col(1)^2对于 X 数组中的每一行。我的理解是 Numpy 数组通常具有固定维度,因此我可以创建一个新的 100x3 暗淡数组,我只是不知道如何使用 Numpy 数组来做到这一点。谢谢!
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

实现此目的的一种方法是创建一个新数组,然后将其连接起来。例如,假设这M当前是您的数组。

您可以将 col(1)^2 计算为C = M[:,0] ** 2(我将其解释为第 1 列的平方,而不是第 1 列的第二列中的值的幂)。C现在将是一个形状为 (100, ) 的数组,因此我们可以使用它来重塑它,C = np.expand_dims(C, 1)这将创建一个长度为 1 的新轴,因此我们的新列现在具有形状 (100, 1)。这很重要,因为我们希望所有两个数组在连接时都具有相同的维数。

这里的最后一步是使用连接它们np.concatenate。总的来说,我们的结果看起来像这样

C = M[:, 0] ** 2
C = np.expand_dims(C, 1)
M = np.concatenate([M, C], axis=1) #third row will now be col(1) ^ 2

如果你是那种喜欢一字排开做事的人,你有:

M = np.concatenate([M, np.expand_dims(M[:, 0] ** 2, 0)], axis=1)

话虽这么说,我建议看看Pandas,在我看来,它更自然地支持这些操作。在熊猫中,这将是

M["your_col_3_name"] = M["your_col_1_name"] ** 2

其中 M 是 pandas 数据框。


查看完整回答
反对 回复 2023-07-05
?
MYYA

TA贡献1868条经验 获得超4个赞

# generate an array with shape (100,2), fill with 2.

a = np.full((100,2),2)


# calcuate the square to first column, this will be a 1-d array.

squared=a[:,0]**2


# concatenate the 1-d array to a, 

# first need to convert it to 2-d arry with shape (100,1) by reshape(-1,1)

c = np.concatenate((a,squared.reshape(-1,1)),axis=1)


查看完整回答
反对 回复 2023-07-05
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

附加 axis=1 应该可以。


a = np.zeros((5,2))

b = np.ones((5,1))

print(np.append(a,b,axis=1))

这应该返回:


[[0,0,1],  

 [0,0,1],  

 [0,0,1],  

 [0,0,1],  

 [0,0,1]]


查看完整回答
反对 回复 2023-07-05
  • 3 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信