考慮以下(Nx1)陣列:
a = [[1]
[2]
[3]
[4]
[5]]
如何從中生成(NxN)陣列a?例如N = 5:
a = [[1 1 1 1 1]
[2 2 2 2 2]
[3 3 3 3 3]
[4 4 4 4 4]
[5 5 5 5 5]]
uj5u.com熱心網友回復:
如果要復制值,可以使用np.repeat:
>>> np.repeat(a, len(a), 1)
array([[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]])
否則,您應該執行廣播并a使用np.broadcast_to以下方法包裝視圖:
>>> np.broadcast_to(a, (len(a),)*2)
array([[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]])
uj5u.com熱心網友回復:
你可以這樣做:
a = [[1], [2], [3], [4], [5]]
out = []
for el in a:
out.append(el * len(a))
return out
如果您在開始時計算一次 'a' 串列的長度,那就更好了。
uj5u.com熱心網友回復:
生成二維陣列的pythonic one liner
a = [[1], [2], [3], [4], [5]]
N = 5
x = [i * N for i in a]
資料來源:
Python 串列推導式
如何在python中定義多維陣列?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324818.html
