我有兩部分問題要問
X = [[-1.0, -1.0], [-2.0, -1. 9], [-3.4, -2.0], [3。 0, 1.5], [3.7, 1.0]】。]
[[3.0, 2.0] , [-4.0, 10.0] 。]
[[-10.0, 5.0], [-6.0, -10.0]。
[[2.0, -2.0]]。
首先,我想迭代大塊的每一列?如何做呢?
這是我的方法 :
ds = zip(*X)
for list in ds。
print(list)
但是它只給了我一列。 ([-1.0, -1.0], [3.0, 2.0], [-10.0, 5.0], [2.0, -2.0])
第二,如何為每一列創建2個點?
uj5u.com熱心網友回復:
不清楚你的預期輸出是什么,但是:
[[-1.0, -1.0], [-2.0, -1.9], [-3。 4, -2.0], [3.0, 1.5], [3.7, 1.0] ]。] [[3.0, 2.0], [-4.0, 10.0]。 [[-10.0, 5.0], [-6.0, -10.0]。 [[2.0, -2.0]] 。 ] flattened = [列 for 行 in 資料 for 列 in 行]輸出:
[[-1.0, -1.0] 。
[-2.0, -1.9]。
[-3.4, -2.0]。
[3.0, 1.5] 。
[3.7, 1.0]。
[3.0, 2.0]。
[-4.0, 10.0] 。
[-10.0, 5.0]。
[-6.0, -10.0]。
[2.0, -2.0 ]]
uj5u.com熱心網友回復:
使用itertools.zip_longest:
from itertools import zip_longest
for lst in zip_longest(*X):
print(lst)
輸出:
([-1.0, -1.0], [3. 0, 2.0], [-10.0, 5.0], [2.0, -2.0] )
([-2.0, -1.9], [-4.0, 10。 0], [-6.0, -10.0], None)
([-3.4, -2.0], None, None, None)
([3.0, 1.5], None, None, None)
([3.7, 1.0], None, None, None)
如果你不想要Nones:
for lst in zip_longest(*X) 。
print(lst[:(lst. index(None) if None in lst else None) ])
([-1.0, -1.0], [3. 0, 2.0], [-10.0, 5.0], [2.0, -2.0] )
([-2.0, -1.9], [-4. 0, 10.0], [-6.0, -10.0] )
([-3.4, -2.0], )
([3.0, 1.5], )
([3.7, 1.0],)
uj5u.com熱心網友回復:
不確定你說的 "每一列 "是什么意思。 當我看你的嵌套串列X時,它似乎是一個2D的嵌套串列,每個串列有2列,行數不定:
>>> import numpy as np
>>> [np.array(ch).shape for ch in X]
[(5, 2), (2, 2) 。(2, 2), (1, 2)]。
在你的問題中,你將以下內容描述為一個列:
([-1.0, -1.0], [3. 0, 2.0], [-10.0, 5.0], [2.0, -2.0] )
這是我上面描述的每個2D陣列的第一行。 由于最后一個陣列只有一行,壓縮操作將在第一行之后停止,因為它的專案已經用完。
也許你是想把所有的二維陣列串聯成一個垂直堆疊。
>>> np.vstack(X)
array([[ -1. , -1. ]。
[-2. , -1.9] 。
[-3.4, -2.] 。
[3. , 1.5] 。
[3.7, 1.] 。
[3. , 2.] 。
[-4. , 10.] 。
[-10. , 5.]。
[-6. , -10.] 。
[2. , -2.]])
或者,如果你不想使用numpy,就像@Lukas建議的那樣:
>>> [行 for chunk in X for 行 in chunk]
[[-1.0, -1.0] 。
[-2.0, -1.9]。
[-3.4, -2.0] 。
[3.0, 1.5] 。
[3.7, 1.0]。
[3.0, 2.0]。
[-4.0, 10.0] 。
[-10.0, 5.0]。
[-6.0, -10.0]。
[2.0, -2.0 ]]
另外,注意你不應該把Python關鍵字list作為變數使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/332626.html
標籤:
上一篇:為什么我的函式會回傳未定義?腳本
