我有一个带有嵌套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
。
知道如何解决这个问题?
答案 0 :(得分:3)
第二列不能。它有一个整数类型。整数没有纳米表示。
值-9223372036854775808是-2 ** 63,即最负64位有符号整数。