Python 使用numpy.mean()保留垂直尺寸
我正在按行计算数组的平均值,而数组可以有一行或多行。有些值可以是Python 使用numpy.mean()保留垂直尺寸,python,arrays,numpy,Python,Arrays,Numpy,我正在按行计算数组的平均值,而数组可以有一行或多行。有些值可以是NaN,在数组中,整行可以是NaN 当我的数组看起来像 [[ 3. nan nan nan nan nan nan] [ 1. nan nan nan nan nan nan]] numpy.mean(..,axis=0)的结果是[2.nan nan] 但是,当我只有一个列数组时 [ 5. nan nan nan nan nan nan] 然后numpy.mean(..,axis=0)
NaN
,在数组中,整行可以是NaN
当我的数组看起来像
[[ 3. nan nan nan nan nan nan]
[ 1. nan nan nan nan nan nan]]
numpy.mean(..,axis=0)
的结果是[2.nan nan]
但是,当我只有一个列数组时
[ 5. nan nan nan nan nan nan]
然后numpy.mean(..,axis=0)
的结果仅为nan
但是我想要
[5.楠楠楠]
。我怎样才能做到这一点?是否必须使用if条件?您可以将数组转换为矩阵,以确保其具有所需的两个维度:
In [5]: arr = np.array([5., np.nan, np.nan, np.nan, np.nan, np.nan, np.nan])
In [6]: np.mean(arr, axis=0)
Out[6]: nan
In [7]: np.mean(np.matrix(arr), axis=0)
Out[7]: matrix([[ 5., nan, nan, nan, nan, nan, nan]])
这将适用于您的两个示例(但请注意,它会生成2D输出)。您可以将数组转换为矩阵,以确保它具有所需的两个维度:
In [5]: arr = np.array([5., np.nan, np.nan, np.nan, np.nan, np.nan, np.nan])
In [6]: np.mean(arr, axis=0)
Out[6]: nan
In [7]: np.mean(np.matrix(arr), axis=0)
Out[7]: matrix([[ 5., nan, nan, nan, nan, nan, nan]])
这将适用于您的两个示例(但请注意,它会生成2D输出)。您可以将数组转换为矩阵,以确保它具有所需的两个维度:
In [5]: arr = np.array([5., np.nan, np.nan, np.nan, np.nan, np.nan, np.nan])
In [6]: np.mean(arr, axis=0)
Out[6]: nan
In [7]: np.mean(np.matrix(arr), axis=0)
Out[7]: matrix([[ 5., nan, nan, nan, nan, nan, nan]])
这将适用于您的两个示例(但请注意,它会生成2D输出)。您可以将数组转换为矩阵,以确保它具有所需的两个维度:
In [5]: arr = np.array([5., np.nan, np.nan, np.nan, np.nan, np.nan, np.nan])
In [6]: np.mean(arr, axis=0)
Out[6]: nan
In [7]: np.mean(np.matrix(arr), axis=0)
Out[7]: matrix([[ 5., nan, nan, nan, nan, nan, nan]])
这将适用于您的两个示例(但请注意,它会生成2D输出)。将数组至少包装在2D中。问题阵列将被重塑为
[[5 nan…]]
,一个1row 2d阵列
np.mean(np.atleast_2d(myarray), axis=0)
np.matrix
做了一些类似的事情,但有更多的负担,包括在输出中保留2维np.如果需要,mean
还可以保留维度。将数组至少包装在2d
中。问题阵列将被重塑为[[5 nan…]]
,一个1row 2d阵列
np.mean(np.atleast_2d(myarray), axis=0)
np.matrix
做了一些类似的事情,但有更多的负担,包括在输出中保留2维np.如果需要,mean
还可以保留维度。将数组至少包装在2d
中。问题阵列将被重塑为[[5 nan…]]
,一个1row 2d阵列
np.mean(np.atleast_2d(myarray), axis=0)
np.matrix
做了一些类似的事情,但有更多的负担,包括在输出中保留2维np.如果需要,mean
还可以保留维度。将数组至少包装在2d
中。问题阵列将被重塑为[[5 nan…]]
,一个1row 2d阵列
np.mean(np.atleast_2d(myarray), axis=0)
np.matrix
做了一些类似的事情,但有更多的负担,包括在输出中保留2维np。如果需要,mean
也可以保留维度。您确定第二个数组是二维数组吗?如果是一维向量,它就行不通了a=np.array([5,np.nan,np.nan],ndmin=2)
,np.mean(a,axis=0)
为我提供了预期的结果。你确定你的第二个数组是二维数组吗?如果是一维向量,它就行不通了a=np.array([5,np.nan,np.nan],ndmin=2)
,np.mean(a,axis=0)
为我提供了预期的结果。你确定你的第二个数组是二维数组吗?如果是一维向量,它就行不通了a=np.array([5,np.nan,np.nan],ndmin=2)
,np.mean(a,axis=0)
为我提供了预期的结果。你确定你的第二个数组是二维数组吗?如果是一维向量,它就行不通了a=np。数组([5,np.nan,np.nan],ndmin=2)
,np。平均值(a,axis=0)
为我提供了预期的结果。