我正在尝试使用填充数组 np.nan
import numpy as np
print np.version.version
# 1.10.2
combine = lambda real, theo: np.vstack((theo, np.pad(real, (0, theo.shape[0] - real.shape[0]), 'constant', constant_values=np.nan)))
real = np.arange(20)
theoretical = np.linspace(0, 20, 100)
result = combine(real, theoretical)
np.any(np.isnan(result))
# False
Run Code Online (Sandbox Code Playgroud)
检查result,似乎而不是np.nan,阵列正在填补-9.22337204e+18.这里发生了什么?我该怎么np.nan办?
结果pad与输入的类型相同. np.nan是一个浮动
In [874]: np.pad(np.ones(2,dtype=int),1,mode='constant',constant_values=(np.nan,))
Out[874]: array([-2147483648, 1, 1, -2147483648])
In [875]: np.pad(np.ones(2,dtype=float),1,mode='constant',constant_values=(np.nan,))
Out[875]: array([ nan, 1., 1., nan])
Run Code Online (Sandbox Code Playgroud)
int pad被转换np.nan为整数:
In [878]: np.array(np.nan).astype(int)
Out[878]: array(-2147483648)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2865 次 |
| 最近记录: |