通过numpy.genfromtxt python读取数据时不要让'nan'为'0'
Not to make 'nan' to '0' when reading the data through numpy.genfromtxt python
现在我正在尝试读取名为 "filin1" 的文件中的数组,例如:
filin1 = [1,3,4, ....,nan,nan,nan..] (in the file, actually it is just a column not an array like this)
所以,我正在尝试将 numpy.genfromtxt 用作:
np.genfromtxt(filin1,dtype=None,delimiter=',',usecols=[0],missing_values='Missing',usemask=False,filling_values=np.nan)
我希望得到 [1,3,4, ....,nan,nan,nan..],但结果是:
[1,3,4, ....,0.,0.,0...]
我想保留 'nan' 而不将其转换为“0”。
请问您有什么想法或建议吗?
谢谢,
艾萨克
如果我尝试用字符串输入来模拟你的情况,我可以毫无问题地阅读 nan
In [73]: txt=b'''1,2
3,4
1.23,nan
nan,02
'''
In [74]: txt=txt.splitlines()
In [75]: txt
Out[75]: [b'1,2', b'3,4', b'1.23,nan', b'nan,02']
In [76]: np.genfromtxt(txt,delimiter=',')
Out[76]:
array([[ 1. , 2. ],
[ 3. , 4. ],
[ 1.23, nan],
[ nan, 2. ]])
nan
是一个有效的浮点值
In [80]: float('nan')
Out[80]: nan
你的命令也有效,尽管它有效
In [82]: np.genfromtxt(txt,dtype=None,delimiter=',',usecols=[0],missing_values='Missing',usemask=False,filling_values=np.nan)
Out[82]: array([ 1. , 3. , 1.23, nan])
期望列包含整数(而不是浮点数)可能会导致问题,因为 nan
是浮点数,而不是整数。
缺失值导致两次调用 nan
In [91]: txt
Out[91]: [b'1,2', b'3,', b'1.23,nan', b'nan,02', b',']
现在我正在尝试读取名为 "filin1" 的文件中的数组,例如:
filin1 = [1,3,4, ....,nan,nan,nan..] (in the file, actually it is just a column not an array like this)
所以,我正在尝试将 numpy.genfromtxt 用作:
np.genfromtxt(filin1,dtype=None,delimiter=',',usecols=[0],missing_values='Missing',usemask=False,filling_values=np.nan)
我希望得到 [1,3,4, ....,nan,nan,nan..],但结果是:
[1,3,4, ....,0.,0.,0...]
我想保留 'nan' 而不将其转换为“0”。
请问您有什么想法或建议吗?
谢谢, 艾萨克
如果我尝试用字符串输入来模拟你的情况,我可以毫无问题地阅读 nan
In [73]: txt=b'''1,2
3,4
1.23,nan
nan,02
'''
In [74]: txt=txt.splitlines()
In [75]: txt
Out[75]: [b'1,2', b'3,4', b'1.23,nan', b'nan,02']
In [76]: np.genfromtxt(txt,delimiter=',')
Out[76]:
array([[ 1. , 2. ],
[ 3. , 4. ],
[ 1.23, nan],
[ nan, 2. ]])
nan
是一个有效的浮点值
In [80]: float('nan')
Out[80]: nan
你的命令也有效,尽管它有效
In [82]: np.genfromtxt(txt,dtype=None,delimiter=',',usecols=[0],missing_values='Missing',usemask=False,filling_values=np.nan)
Out[82]: array([ 1. , 3. , 1.23, nan])
期望列包含整数(而不是浮点数)可能会导致问题,因为 nan
是浮点数,而不是整数。
缺失值导致两次调用 nan
In [91]: txt
Out[91]: [b'1,2', b'3,', b'1.23,nan', b'nan,02', b',']