我有一個像這樣的 numpy 陣列:
array = [[1, 3, 5, 7], [2, 4, 6, 8]]
我想按元素連接它們。我發現的大多數解決方案都可以用兩個單獨的二維陣列來做到這一點,但我想在一個二維陣列中做到這一點。
期望的輸出:
array = [[1, 2], [3, 4], [5, 6], [7, 8]]
uj5u.com熱心網友回復:
只是行代碼
array = [[1, 3, 5, 7], [2, 4, 6, 8]]
print(list(zip(*array)))
輸出 :
[(1, 2), (3, 4), (5, 6), (7, 8)]
uj5u.com熱心網友回復:
ljdyer 幾乎是對的,但你只有一個陣列,所以你可以這樣做:
list(zip(*array))
uj5u.com熱心網友回復:
這是一個zip操作。嘗試:
arr1 = [1, 3, 5, 7]
arr2 = [2, 4, 6, 8]
print(list(zip(arr1,arr2)))
輸出:
[(1, 2), (3, 4), (5, 6), (7, 8)]
或者對于 numpy 陣列,您可以執行以下stack操作:
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
c = np.stack((a,b), axis = 1)
print(c)
見https://www.delftstack.com/howto/numpy/python-numpy-zip/
uj5u.com熱心網友回復:
以下代碼將在每列中連接陣列元素
import numpy as np
array = np.array([[1, 3, 5, 7], [2, 4, 6, 8]])
res = []
for i in range(array.shape[1]):
res.append(array[:, i])
res = np.array(res)
print(res.tolist())
uj5u.com熱心網友回復:
Numpy轉置:
In [382]: np.transpose([[1, 3, 5, 7], [2, 4, 6, 8]])
Out[382]:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
如果它已經是一個 numpy 陣列(而不是一個串列串列),則可以使用T快捷方式:
In [383]: arr = np.array([[1, 3, 5, 7], [2, 4, 6, 8]])
In [384]: arr
Out[384]:
array([[1, 3, 5, 7],
[2, 4, 6, 8]])
In [385]: arr.T
Out[385]:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
list-zip 是眾所周知的轉置串列版本:
In [386]: list(zip(*arr))
Out[386]: [(1, 2), (3, 4), (5, 6), (7, 8)]
請注意,結果是一個元組串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/400521.html
下一篇:3維矩陣的單位矩陣
