我有三個 numpy 陣列。第一個的形狀是 (413, 2),第二個的形狀是 (176, 2),第三個的形狀是 (589,)。如果您注意到,413 176 = 589。我想要完成的是使用第三個 np 陣列的 589 值,并分別制作形狀為 (413, 3) 和 (176, 3) 的前兩個陣列。
所以,我想要的是獲取第三個 np 陣列中的值并將它們附加到第一個和第二個 np 陣列的列中。我可以執行應用于第一個的邏輯,然后使用第一個的長度的偏移量繼續使用正確的值附加到第二個。我想我也可以組合 np 陣列 1 和 2,盡管由于我的資料預處理,它們分開是有原因的。
如果有幫助的話,從視覺上看,我所擁有的是這樣的:
Array 1:
[[1 2]
[3 4]
[4 5]]
Array 2:
[[6 7]
[8 9]
[10 11]]
Array 3:
[1 2 3 4 5 6]
And what I want to have is:
Array 1:
[[1 2 1]
[3 4 2]
[4 5 3]]
Array 2:
[[6 7 4]
[8 9 5]
[10 11 6]]
我曾嘗試使用 np.append、np.concatenate 和 np.vstack,但未能實作我想要的。我對使用 numpy 和 Python 比較陌生,所以我想我只是錯誤地使用了這些工具。
非常感謝您提供的任何幫助!這是我第一次在這里提問,所以如果我做錯了什么或遺漏了什么,請告訴我。
uj5u.com熱心網友回復:
使用 的長度拆分第三個陣列array1,然后水平堆疊它們。您需要使用np.newaxis或array.reshape來更改array3.
import numpy as np
array1 = np.array(
[[1, 2],
[3, 4],
[4, 5]]
)
array2 = np.array(
[[6, 7],
[8, 9],
[10, 11]]
)
array3 = np.array([1, 2, 3, 4, 5, 6])
array13 = np.hstack([array1, array3[:len(array1), np.newaxis]])
array23 = np.hstack([array1, array3[len(array1):, np.newaxis]])
輸出:
array13
array([[1, 2, 4],
[3, 4, 5],
[4, 5, 6]])
array23
array([[ 6, 7, 4],
[ 8, 9, 5],
[10, 11, 6]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372113.html
