亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加列 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條經驗 獲得超16個贊

實現此目的的一種方法是創建一個新數組,然后將其連接起來。例如,假設這M當前是您的數組。

您可以將 col(1)^2 計算為C = M[:,0] ** 2(我將其解釋為第 1 列的平方,而不是第 1 列的第二列中的值的冪)。C現在將是一個形狀為 (100, ) 的數組,因此我們可以使用它來重塑它,C = np.expand_dims(C, 1)這將創建一個長度為 1 的新軸,因此我們的新列現在具有形狀 (100, 1)。這很重要,因為我們希望所有兩個數組在連接時都具有相同的維數。

這里的最后一步是使用連接它們np.concatenate??偟膩碚f,我們的結果看起來像這樣

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條經驗 獲得超13個贊

附加 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 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號