Numpy乘法并创建新列表B[i]=乘积(A[j]),其中j=!我
创建一个一维数组B,其中B[i]是所有a[j]的乘积,其中j!=一,Numpy乘法并创建新列表B[i]=乘积(A[j]),其中j=!我,numpy,numpy-ndarray,Numpy,Numpy Ndarray,创建一个一维数组B,其中B[i]是所有a[j]的乘积,其中j!=一, 例如:如果A={2,1,5,9},那么B将是{45,90,18,10}这里有一种方法将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.pro
例如:如果A={2,1,5,9},那么B将是{45,90,18,10}这里有一种方法将
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.])
或使用掩蔽
-
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])