在python3中使用numpy进行数学运算

在python3中使用numpy进行数学运算,numpy,math,Numpy,Math,我有一个numpy数组,如下示例: 例如: arr = array([[31, 18], [ 27, 9], [21, 20]]) 我想分别得到每个内部列表的平均值 每个内部列表的标准偏差。在这里之前我会 有2个列表(平均值和标准值),每个列表有3个项目(一个 根据arr中的内部列表)。 然后我将乘以std列表中的每一项,然后将其相加 平均值列表和新标准列表逐项列出。所以最后结果是 将是一个包含3项的列表。 以下是示例的步骤: std = [9.192388155

我有一个
numpy
数组
,如下示例:

例如:

arr = array([[31, 18],
       [ 27,  9],
       [21, 20]])
我想分别得到每个内部列表的
平均值
每个内部列表的标准偏差
。在这里之前我会 有2个列表(平均值和标准值),每个列表有3个项目(一个 根据arr中的内部列表)。 然后我将乘以std列表中的每一项,然后将其相加 平均值列表和新标准列表逐项列出。所以最后结果是 将是一个包含3项的列表。 以下是示例的步骤:

std = [9.19238815542512, 12.7279220613579, 0.707106781186548]
std2 = [18.3847763108502, 25.4558441227157, 1.4142135623731]
mean = [24.5, 18, 20.5]
以下是预期输出:

final = [42.8847763108502, 43.4558441227157, 21.9142135623731]
为了得到这样的结果,我用python编写了以下代码:

import numpy as np
for item in arr:
    mean, std = [np.mean(), np.std()*2]
    results = mean + std

但它不会返回预期的输出。您知道如何修复它吗?

代码中有两个问题。首先,在没有参数的情况下调用
np.mean
,这将导致错误。相反,您希望调用
arr.mean(…)
np.mean(arr,…)
。其次,在循环的每次迭代中,您都要覆盖
结果
变量。您可能希望在循环之外声明结果数组,并使用
list.append
添加到它们中

但是,对于您的问题,Numpy内置了一个专门的解决方案:许多Numpy函数都有一个
参数,允许您沿数组的一个轴取平均值

import numpy as np

arr = np.array([[0, 100],
                [1, 101],
                [2, 102]])

arr.mean(axis=0) # => [1, 101]
arr.mean(1) # => [50, 51, 52]
要知道要使用哪个轴,请记住给定的轴将被删除。因此,对于一个3乘2的数组,在轴0上操作将得到一个长度为2的数组,使用轴1将得到长度为3的数组

Numpy还允许您对相同形状的数组1或数组与数字之间执行元素算术。2

使用这些提示,获得您想要的结果应该非常简单


如果您想了解Numpy特性的详细信息,可以从这里开始

1您还可以将数组添加到列表中,并使用
np添加列表。add
。这适用于Numpy认为“类似数组”的任何内容,例如元组


2 Numpy还允许使用its在不同形状的数组之间执行某些操作,但这有点离题。

代码中有两个问题。首先,在没有参数的情况下调用
np.mean
,这将导致错误。相反,您希望调用
arr.mean(…)
np.mean(arr,…)
。其次,在循环的每次迭代中,您都要覆盖
结果
变量。您可能希望在循环之外声明结果数组,并使用
list.append
添加到它们中

但是,对于您的问题,Numpy内置了一个专门的解决方案:许多Numpy函数都有一个
参数,允许您沿数组的一个轴取平均值

import numpy as np

arr = np.array([[0, 100],
                [1, 101],
                [2, 102]])

arr.mean(axis=0) # => [1, 101]
arr.mean(1) # => [50, 51, 52]
要知道要使用哪个轴,请记住给定的轴将被删除。因此,对于一个3乘2的数组,在轴0上操作将得到一个长度为2的数组,使用轴1将得到长度为3的数组

Numpy还允许您对相同形状的数组1或数组与数字之间执行元素算术。2

使用这些提示,获得您想要的结果应该非常简单


如果您想了解Numpy特性的详细信息,可以从这里开始

1您还可以将数组添加到列表中,并使用
np添加列表。add
。这适用于Numpy认为“类似数组”的任何内容,例如元组


2 Numpy还允许使用its在不同形状的数组之间执行某些操作,但这有点离题。

如果您考虑尺寸或轴以及形状,您将进一步了解Numpy。你的例子是(3,2)型的。看看函数文档。实验。也应该涵盖这个问题。如果你从尺寸、轴和形状的角度来思考,你会在numpy中得到进一步的了解。你的例子是(3,2)型的。看看函数文档。实验。也应该包括这个问题。