gpt4 book ai didi

python - 如何将 bools 的 numpy 记录数组转换为整数以计算协方差?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:46 24 4
gpt4 key购买 nike

我有大约 40 个维度的大约 50 万个条目的记录数组。维度是数据类型的混合。我想子选择 5 个 bool 维度并获取大约 1k 个条目的 block ,然后计算协方差矩阵以查看维度相关性。我完全不知道如何使用 .view().astype() 来进行这种转换。初始子选择:

p_new[['no_gender', 'no_age', 'no_income', 'no_politics', 'no_edu']]
array([(False, False, True, False, False), (True, True, False, True, True),
(True, True, False, True, True), ...,
(True, True, True, True, True), (True, True, True, True, True),
(True, True, True, True, True)],
dtype=[('no_gender', '|b1'), ('no_age', '|b1'), ('no_income', '|b1'), ('no_politics', '|b1'), ('no_edu', '|b1')])

我所有的转换尝试都将我的 5 个维度压缩为 1 个(不需要的!),而不是从 (1000,5) dtype=np.bool(1000,5) dtype=np.int32 我最终得到 (1000,1) dtype=np.int32

最佳答案

我猜你的问题是当你改变类型时你对整行进行操作。如果你看成一个bool的数组,你就得到了所有的值,然后你就可以做astype了。但是,您必须 reshape 。

pnew.view("bool").astype(int).reshape(len(pnew),-1)

使用 .tolist() 更简单,但可能会占用更多内存并且速度可能更慢。

asarray(pnew.tolist()).astype(int)

关于python - 如何将 bools 的 numpy 记录数组转换为整数以计算协方差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805476/

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