Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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 将.npy掩码数组保存到带有NAN的.npy数组,其中掩码==True_Python_Numpy - Fatal编程技术网

Python 将.npy掩码数组保存到带有NAN的.npy数组,其中掩码==True

Python 将.npy掩码数组保存到带有NAN的.npy数组,其中掩码==True,python,numpy,Python,Numpy,有没有办法将遮罩的3D numpy阵列转换为使用NAN代替遮罩的numpy阵列?这样,我可以使用np.save轻松地写出numpy数组。另一种方法是找到一种方法,用一些清晰的指示符写出被屏蔽元素的屏蔽数组。我试过: a = np.ma.zeros((500, 500)) a.dump('test') 但是我需要文件的格式,以便可以读入R。谢谢。您可以将掩码乘以数据,以便所有掩码元素都等于零,例如: a=np.random.rand(500,500) b=ma.masked_greater(a,

有没有办法将遮罩的3D numpy阵列转换为使用NAN代替遮罩的numpy阵列?这样,我可以使用
np.save
轻松地写出numpy数组。另一种方法是找到一种方法,用一些清晰的指示符写出被屏蔽元素的屏蔽数组。我试过:

a = np.ma.zeros((500, 500))
a.dump('test')

但是我需要文件的格式,以便可以读入R。谢谢。

您可以将掩码乘以数据,以便所有掩码元素都等于零,例如:

a=np.random.rand(500,500)
b=ma.masked_greater(a, .5)
result=b.data*b.mask
然后可以使用

result[result==0] = np.nan

您可以将遮罩乘以数据,使所有遮罩元素都等于零,例如:

a=np.random.rand(500,500)
b=ma.masked_greater(a, .5)
result=b.data*b.mask
然后可以使用

result[result==0] = np.nan
扫描显示
np.ma.filled
符合您的要求。比如说,

import numpy as np

arr = np.arange(2*3*4).reshape(2,3,4).astype(float)
mask = arr % 5 == 0

marr = np.ma.array(arr, mask=mask)
print(np.ma.filled(marr, np.nan))
屈服

[[[ nan   1.   2.   3.]
  [  4.  nan   6.   7.]
  [  8.   9.  nan  11.]]

 [[ 12.  13.  14.  nan]
  [ 16.  17.  18.  19.]
  [ nan  21.  22.  23.]]]

或者,您可以使用掩码数组的
marr.filled(np.nan)
相当于
np.ma.filled(marr,np.nan)
扫描显示
np.ma.filled
符合您的要求。比如说,

import numpy as np

arr = np.arange(2*3*4).reshape(2,3,4).astype(float)
mask = arr % 5 == 0

marr = np.ma.array(arr, mask=mask)
print(np.ma.filled(marr, np.nan))
屈服

[[[ nan   1.   2.   3.]
  [  4.  nan   6.   7.]
  [  8.   9.  nan  11.]]

 [[ 12.  13.  14.  nan]
  [ 16.  17.  18.  19.]
  [ nan  21.  22.  23.]]]

或者,您可以使用掩码数组的
marr.filled(np.nan)
相当于
np.ma.filled(marr,np.nan)