作者:xn60ljv | 来源:互联网 | 2022-11-23 15:02
我有一个字符串数组,分为三个字段:
x = np.array([(-1, 0, 1),
(-1, 1, 0),
(0, 1, -1),
(0, -1, 1)],
dtype=[('a', 'S2'),
('b', 'S2'),
('c', 'S2')])
我想转换为数字数组(类型np.int8
为首选项,但不是必需的),形状为4x3,而不是字段.
我的一般方法是转换为'S2'类型的4x3数组,然后用astype
它来使它成为数字.唯一的问题是,唯一的办法我能想到既包括中view
和np.lib.stride_tricks.as_strided
,这似乎不是一个非常强大的解决方案:
y = np.lib.stride_tricks.as_strided(x.view(dtype='S2'),
shape=(4, 3), strides=(6, 2))
z = y.astype(np.int8)
这适用于此处显示的玩具箱,但我觉得必须有一种更简单的方法来解压缩具有所有具有相同dtype的字段的数组.什么是更强大的替代方案?