我正在使用一個數據對象,它是不同形狀的numpy數組列表。我想對待數據對象作爲一個單一的numpy的對象,這樣我可以加,減,它們好像是純粹的numpy的陣列擴展這些對象:將numpy數組的列表視爲一個numpy對象
# Defining the data objects:
d1 = [numpy.random.rand(n**2).reshape(n, n) for n in range(1, 5)]
d2 = [numpy.random.rand(n**2).reshape(n, n) for n in range(1, 5)]
# The operation I want to perform:
d3 = [a1 + 2*a2 for a1, a2 in zip(d1, d2)]
# What I really would like to write:
d3 = d1 + 2*d2 # (not valid for lists of arrays)
什麼是定義的對象D1的最簡單方法和d2這樣我可以使用最後一行?
我問的原因是因爲我想重用一些假設d1和d2是簡單numpy數組的可以添加和縮放的代碼。
@Moses Koledoye:數組的形狀比賽。看例子。 –
從這些列表創建數組時,請注意'shape'和'dtype'。由於子陣列的形狀不同,組合將是數組對象的一維數組,而不是浮點數的多維數組。一些但不是全部的numpy數學通過這些對象傳播。 – hpaulj