当我创建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
,这也是有道理的。
但是当我考虑这两种情况时,它让我很困惑。
你能解释一下吗?
非常感谢。
wen
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
参数的数组,并且保存序列对象的值类型的最小值是bool
,当您指定int
值时,它将更改为bool
。