-
侃侃尔雅
实现此目的的一种方法是创建一个新数组,然后将其连接起来。例如,假设这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 数据框。
-
MYYA
# 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)
-
红颜莎娜
附加 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]]