创建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类型,我 guess 也许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
,这也是有道理的。
但是,当我同时考虑这两种情况时,这让我感到困惑。
请您对此稍作解释。
非常感谢。
温
答案 0 :(得分:2)
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
。