我正在尝试创建一个由整数填充的数组,给出一个在数组中位置的公式。
基本上我正在尝试制作一个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
答案 0 :(得分:4)
列表理解可以在这里提供帮助:
>>> 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]])
答案 1 :(得分:1)
你可以使用fromfunction来将它包装在numpy.matrix中。
numpy.matrix(numpy.fromfunction(lambda x, y: x*y, (4,3), dtype=int))
传递你喜欢的任何形状,我选择(4,3)来匹配你的例子。
答案 2 :(得分:1)
使用indices
中的numpy
:
import numpy as np
ind = np.indices((4, 3))
然后
ind[0] * ind[1]
为您提供所需的结果:
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4],
[0, 3, 6]])