Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用numpy.mean()保留垂直尺寸_Python_Arrays_Numpy - Fatal编程技术网

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)
为我提供了预期的结果。