【问题标题】:Divide ndarray by scalar - Numpy / Python将ndarray除以标量 - Numpy / Python
【发布时间】:2014-03-14 21:47:22
【问题描述】:

我只是想知道如何在不使用循环的情况下做这样的事情。

我做了一个简单的测试,尝试调用除法,就像我们使用 numpy.array 一样,但我得到了相同的 ndarray。

N = 2
M = 3

matrix_a = np.array([[15., 27., 360.],
            [180., 265., 79.]])
matrix_b = np.array([[.5, 1., .3], 
            [.25, .7, .4]])

matrix_c = np.zeros((N, M), float)

n_size = 360./N
m_size = 1./M

for i in range(N):
    for j in range(M):
        n = int(matrix_a[i][j] / n_size) % N
        m = int(matrix_b[i][j] / m_size) % M
        matrix_c[n][m] += 1 

matrix_c / (N * M)
print matrix_c  

我想这应该很简单。 任何帮助将不胜感激。

【问题讨论】:

    标签: python numpy matrix division


    【解决方案1】:

    我认为你想就地修改matrix_c

    matrix_c /= (N * M)
    

    或者可能不太有效:

    matrix_c = matrix_c / (N * M) 
    

    表达式matrix_c / (N * M) 不会改变matrix_c - 它会创建一个新矩阵。

    【讨论】:

      【解决方案2】:

      另一种解决方案是使用numpy.divide

      matric_c = np.divide(matrix_c, N*M)
      

      只要确保 N*M 是一个浮点数,以防您寻找精度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        • 2020-11-15
        • 2018-10-10
        • 2023-03-29
        • 2013-10-13
        • 2020-06-27
        相关资源
        最近更新 更多