gpt4 book ai didi

python - 如何将 ndarray 转换为结构化数组?

转载 作者:行者123 更新时间:2023-11-28 20:48:55 24 4
gpt4 key购买 nike

我有一个形状为 (100,50) 的常规 float ndarray。我如何给前两列命名,即 'idx1''idx2',以及 'data' 给其余的列。

最佳答案

您可以使用view 方法。这是一个示例,使用形状为 (3, 5) 的数组进行演示:

In [21]: x
Out[21]:
array([[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.],
[ 10., 11., 12., 13., 14.]])

In [22]: y = x.ravel().view(dtype=[('idx1', float), ('idx2', float), ('data', float, 3)])

In [23]: y['idx1']
Out[23]: array([ 0., 5., 10.])

In [24]: y['data']
Out[24]:
array([[ 2., 3., 4.],
[ 7., 8., 9.],
[ 12., 13., 14.]])

In [25]: y['data'][1]
Out[25]: array([ 7., 8., 9.])

请注意,y 是一个一维数组;它的形状为 (3,)。如果您将转换更改为 y = x.view(...)(即不要弄乱 x),y 将具有(3,1),y['idx1'] 的形状为 (3,1)。

关于python - 如何将 ndarray 转换为结构化数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com