【问题标题】:Doing arithmetic with python array columns用python数组列做算术
【发布时间】:2021-11-20 21:50:12
【问题描述】:

如果我有一个数组:A = np.array([[1,2,0],[5,6,0]])。如何用前两列的总和或其他列的其他算术组合替换第三列?

在示例中,将第三列计算为前 2 列的总和将得到:np.array([[1,2,3],[5,6,11]])

我试过A[:2] = A[:,0] + A[:,1]A[:2] = A[:,0].T + A[:,1].T。我搜索了添加列,但找到了插入列的方法。

import numpy as np

A = np.array([[1,2,3],[5,6,7]])
A[:2] = A[:,0] + A[:,1]

在 R 中这很容易,但我没有看到在 Python 中实现它的简单方法。

【问题讨论】:

    标签: python numpy arithmetic-expressions


    【解决方案1】:

    你快到了:

    >>> A[:,2] = A[:,0] + A[:,1]
    >>> A
    array([[ 1,  2,  3],
           [ 5,  6, 11]])
    

    A[:, k]:

    • A 是您要索引的数组
    • : 作为 first 索引表示“所有行”
      • 例如,A[:, :] 表示“所有行和所有列”
    • k 作为第二个索引表示“kth column”
      • 例如,A[1, 2] 表示“第 1 行第 2 列的元素”
      • A[2, :] 表示“第 2 行,所有列”

    这可以推广到任意数量的维度。

    【讨论】:

    • 谢谢。我对简单的错别字造成的混乱程度感到惊讶。我用这个拉头发。
    【解决方案2】:

    切片数组并等于沿行轴的总和。

    A[all rows,column 3]= sum of each row in array A

    代码如下

    A[:,2]=A.sum(1)
    
    array([[ 1,  2,  3],
           [ 5,  6, 11]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-18
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 2018-05-26
      • 1970-01-01
      • 2017-10-27
      相关资源
      最近更新 更多