gpt4 book ai didi

python - numpy.array bool 值与 int 的混合

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:35 26 4
gpt4 key购买 nike

当我创建 numpy.array 时,它的 bool 类型与 int 混合

np.array([True,True,100])
Out[656]: array([ 1, 1, 100])

np.array([True,True,100]).dtype
Out[657]: dtype('int32')

它将整个数组转换为 int 类型,我猜测也许 int 类比 bool 类更高,这是有道理的。


而且,如果我已经有一个 bool 类型 array 如下:

#When I assign the value by using the index 
b=np.array([True,True,False])
b[2]
Out[659]: False
b[2]=100
b
Out[661]: array([ True, True, True])

它将把 100 视为 bool True,这也是有道理的。


然而,当我考虑这两种情况时,它让我感到困惑。

你能稍微解释一下吗?

最佳答案

Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32

import numpy as np

np.array([True,True,100])
Out[3]: array([ 1, 1, 100])

np.array([True,True,100], dtype=bool)
Out[4]: array([ True, True, True])

您应该使用 dtype 来为数组指定所需的数据类型。

请查看文档

https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.array.html

第二个问题,请查看dtype参数的描述,

“如果没有给出,那么类型将被确定为在序列中保存对象所需的最小类型。”

您创建的数组没有dtype 参数,当您分配一个int 时,保存序列对象的值类型的最小值是bool 值将更改为 bool

关于python - numpy.array bool 值与 int 的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757712/

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