gpt4 book ai didi

python - numpy.array bool 值到二进制?

转载 作者:太空狗 更新时间:2023-10-29 17:26:42 26 4
gpt4 key购买 nike

我正在尝试用 python27 重写一个 matlab 代码。有一行matlab如下:

vector_C = vector_A > vector_B;

如果我尝试使用 numpy 在 python 中编写它,它会是相同的,但结果将是一个 bool 数组而不是二进制文件。我希望结果在二进制文件中。有没有办法让它返回二进制或者我应该每次手动转换?有没有快速转换的方法?我是 python 的新手。谢谢。

最佳答案

即使 vector_C 可能有 dtype=bool,您仍然可以进行如下操作:

In [1]: vector_A = scipy.randn(4)

In [2]: vector_B = scipy.zeros(4)

In [3]: vector_A
Out[3]: array([ 0.12515902, -0.53244222, -0.67717936, -0.74164708])

In [4]: vector_B
Out[4]: array([ 0., 0., 0., 0.])

In [5]: vector_C = vector_A > vector_B

In [6]: vector_C
Out[6]: array([ True, False, False, False], dtype=bool)

In [7]: vector_C.sum()
Out[7]: 1

In [8]: vector_C.mean()
Out[8]: 0.25

In [9]: 3 - vector_C
Out[9]: array([2, 3, 3, 3])

所以,简而言之,您可能不需要做任何额外的事情。

但是如果你必须做一个转换,你可以使用astype:

In [10]: vector_C.astype(int)
Out[10]: array([1, 0, 0, 0])

In [11]: vector_C.astype(float)
Out[11]: array([ 1., 0., 0., 0.])

关于python - numpy.array bool 值到二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525921/

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