【发布时间】:2016-06-10 23:15:48
【问题描述】:
我有一个带有嵌套 dtype 的 numpy 数组:
dt = np.dtype([('e', '<f8'), ('n', '<i8'), ('pos', '<f8', (3,))])
arr = np.zeros(5, dtype=dt)
array([(0.0, 0, [0.0, 0.0, 0.0]), (0.0, 0, [0.0, 0.0, 0.0]),
(0.0, 0, [0.0, 0.0, 0.0]), (0.0, 0, [0.0, 0.0, 0.0]),
(0.0, 0, [0.0, 0.0, 0.0])],
dtype=[('e', '<f8'), ('n', '<i8'), ('pos', '<f8', (3,))])
我正在尝试用np.nan 填充整个数组:
arr[:] = np.nan
但是,这并没有按预期工作:
array([(nan, -9223372036854775808, [nan, nan, nan]),
(nan, -9223372036854775808, [nan, nan, nan]),
(nan, -9223372036854775808, [nan, nan, nan]),
(nan, -9223372036854775808, [nan, nan, nan]),
(nan, -9223372036854775808, [nan, nan, nan])],
dtype=[('e', '<f8'), ('n', '<i8'), ('pos', '<f8', (3,))])
这里的第二列显然是不是nan。
知道如何解决这个问题吗?
【问题讨论】:
-
好吧,
dtype是i8和NaN不能用intdtype表示,所以看起来所发生的只是它被设置为某个统一的值