【问题标题】:How to select specific values in an array/matrix in Numpy for a function?如何在 Numpy 中为函数选择数组/矩阵中的特定值?
【发布时间】:2021-06-30 23:03:50
【问题描述】:

我有一个这样的数组:

data = np.array([[327, 137, 82], [301, 168, 75]])

我需要能够操作各个条目以解决我正在处理的问题。例如,我必须能够将两行相加,但还要将列相加,即data[0][0] + data[1][0]

但是,我想编写一个函数,允许我对任何大小的数组 n x m 执行此操作。

我尝试过类似的方法:

for x, y, z in data:
    etc.

但我无法拉出我想要的特定元素位置。我的目标是编写一个更通用/抽象的代码,我可以在其中添加我认为合适的 data[i][j]

【问题讨论】:

  • 我怀疑您需要阅读 numpy 基础。例如,我们用data[i,j] 索引一个元素,用data[:,j] 索引一个列。我们可以轻松地对行或列求和。

标签: python arrays numpy matrix


【解决方案1】:

我很难确定您是要从总和中获取标量值还是列/行向量,但这是我尝试获取的方法:

从以下位置获取行向量:

data = np.array([[327, 137, 82], [301, 168, 75]]),

您可以使用np.sum(data, axis=0),它将返回一个行向量,其中包含每列所有元素的总和。

要获得一个列向量(它将是一维的),我会使用:

np.sum(data, axis=1),它将返回一个列向量,其中包含每行所有元素的总和。

添加一列和另一列:

data[:, 0] + data[:, 1] 可以工作。

对不起,如果我告诉你错误的事情,我不知道你是想要一个标量还是一个向量作为结果。

【讨论】:

  • 您好,感谢您的回复。我正在寻找一个标量。所以举个例子,我想添加[327]和[301],但更一般地,我想抽象地做。
  • @Ksant040 抽象地说,您是否必须先搜索该值?还是你已经有了位置? (即已经有 i1、j1 和 i4、j4 作为要添加的标量的位置)
  • 我希望能够输入任何数组,并且函数会根据我的标准准确地选择我想要的值
猜你喜欢
  • 2015-03-09
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多