我試圖創建一個數組,該數組由位於數組中的位置的公式構成。基於數組中的位置創建一個數組
基本上我試圖做一個m X n
矩陣,其中數組的值由基於它們的m
和n
值的公式確定。
例如。
m = 4
n = 3
a^i,j (A sub i,j)
其中a = i*j
應該是這樣的:
[0, 0, 0]
[0, 1, 2]
[0, 2, 4]
[0, 3, 6]
所以A(0,0)
將0*0 = 0
A(3, 2)
將3*2 = 6
我試圖創建一個數組,該數組由位於數組中的位置的公式構成。基於數組中的位置創建一個數組
基本上我試圖做一個m X n
矩陣,其中數組的值由基於它們的m
和n
值的公式確定。
例如。
m = 4
n = 3
a^i,j (A sub i,j)
其中a = i*j
應該是這樣的:
[0, 0, 0]
[0, 1, 2]
[0, 2, 4]
[0, 3, 6]
所以A(0,0)
將0*0 = 0
A(3, 2)
將3*2 = 6
您可以使用fromfunction對於這一點,只是包裝,在numpy.matrix。
numpy.matrix(numpy.fromfunction(lambda x, y: x*y, (4,3), dtype=int))
通過你喜歡的任何形狀,我選擇(4,3)來匹配你的例子。
列表理解可以幫助在這裏:
>>> m = 4
>>> n = 3
>>> [[x * y for y in range(n)] for x in range(m) ]
[[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]
您還可以使用與NumPy,並採取廣播的優勢:
>>> import numpy as np
>>> np.arange(m).reshape(m, 1) * np.arange(n)
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4],
[0, 3, 6]])
它是否適合你? –
是的,這兩個爲我工作。儘管我儘可能避免使用numpy。 – Dan