我有一个n x n矩阵,p,我想除以一个n x 1向量,q。当使用p/q(或等效的np.divide(p,q))时,它将每行视为一个行向量,并将每一个元素除以 q。我想要类似的东西,但列而不是行(即 p 的每行应该除以 q 的相应元素,a la p[i,:]/q[i])。我试过用一个循环,这很简单,但是n的大小太大了,这不可行。否则,我只找到了np.divide(),它没有axis关键字。
p[i,:]/q[i]
axis
0pizxfdo1#
您可能需要查看文档的broadcasting section。下面是一个演示:
import numpy as np N = 3 p = np.arange(N * N).reshape(N, N) + 1 q = np.arange(N) + 1 q1N = q[None, :] # q.reshape(1, N) qN1 = q[:, None] # q.reshape(N, 1)
那么你有:
>>> p [[1 2 3] [4 5 6] [7 8 9]] >>> q [1 2 3] >>> p / q [[1. 1. 1. ] [4. 2.5 2. ] [7. 4. 3. ]] >>> p / q1N [[1. 1. 1. ] [4. 2.5 2. ] [7. 4. 3. ]] >>> p / qN1 [[1. 2. 3. ] [2. 2.5 3. ] [2.33333333 2.66666667 3. ]]
1条答案
按热度按时间0pizxfdo1#
您可能需要查看文档的broadcasting section。
下面是一个演示:
那么你有: