在NumPy中,可以使用:
作爲索引範圍的通配符來分配整個數組段。例如:需要範圍分配的數組類型
>>> (n, m) = (5,5)
>>> a = numpy.array([[0 for i in range(m)] for j in range(n)])
>>> a
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
>>> for i in range(n):
... a[i, :] = [1 for j in range(m)]
>>> a
array([[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]])
然而,numpy.array
僅持有數值數據。我需要一個可以容納任意對象的數組類型,並且可以像NumPy數組一樣尋址。我應該使用什麼?
編輯:我想這種範圍分配語法的完全靈活性,例如,這應該工作,太:
>>> a[:,1] = 42
>>> a
array([[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1]])
你只需要特定的情況下,或者是類似這樣的sufficent簡單的情況?在這種情況下,內置列表工作得很好,你只是省略了逗號。 – delnan
@delnan都不。我也想用這個語法來處理更復雜的情況。 – clstaudt