创建一个一维数组B,其中B [i]是j = i的所有A [j]的乘积。
例如:如果A = {2,1,5,9},那么B将是{45,90,18,10}
答案 0 :(得分:1)
这是A
作为数组的一种方式-
In [59]: A2D = np.repeat(A[None],len(A),axis=0)
In [60]: np.fill_diagonal(A2D,1)
In [61]: A2D.prod(1)
Out[61]: array([45, 90, 18, 10])
或与np.prod
-
In [71]: A.prod()/A
Out[71]: array([45., 90., 18., 10.])
或与masking
-
In [85]: mask = ~np.eye(len(A),dtype=bool)
In [86]: np.broadcast_to(A,mask.shape)[mask].reshape(len(A),-1).prod(1)
Out[86]: array([45, 90, 18, 10])