各位老铁们好,相信很多人对scalar是什么意思?用法、例句都不是特别的了解,因此呢,今天就来为大家分享下关于scalar是什么意思?用法、例句以及NumPy之:标量scalars的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
1、Python语言中只定义了特定数据类的一种类型(比如只有一种整数类型,一种浮点类型等)。在不需要关注计算机中数据表示方式的普通应用程序中,这样做很方便。但是,对于科学计算来说,我们需要更加精确的控制类型。
2、在NumPy中,引入了24种新的Pythonscalar类型用于更加准确的描述数据。这些类型都是可以直接在NumPy中的数组中使用的,所以也叫Arrayscalar类型。
3、本文将会详细讲解这24种scalar类型。
4、先看一个张图,看下scalar类型的层次结构:
5、上面实线方框括起来的,就是scalar类型。这些标量类型,都可以通过np.type来访问,比如:
6、In[130]:np.intc\nOut[130]:numpy.int32\n
细心的小伙伴可能要问了,这不对呀,实线方框括起来的只有22中类型,还有两个类型是什么?
7、还有两个是代表整数指针的intp和uintp。
8、注意,arrayscalars类型是不可变的。
9、我们可以isinstance来对这些数组标量来进行层次结构的检测。
10、例如,如果val是数组标量对象,则isinstance(val,np.generic)将返回True。如果val是复数值类型,则isinstance(val,np.complexfloating)将返回True。
11、我们用下面的表来展示内置的Scalar类型和与他们相对应的C类型或者Python类型。最后一列的字符代码是类型的字符表示,在有些情况比如构建dtype中会使用到。
12、对于数组中的对象类型object_来说,存储的数据其实是Python对象的引用,所以说他们的对象类型必须一致。
13、虽然存储的是引用,但是在取值访问的时候,返回的就是对象本身。
14、可以看到对于数字类型来说,int,uint,float,complex,后面可以跟上具体的数组,表示特定的长度。
15、intp和uintp是两个指向整数的指针。
16、有些类型和Python自带的类型基本上是等价的,事实上这些类型就是继承自Python自带的类型:
17、有一个特例就是bool_,它和Python的BooleanType非常类似,但并不是继承自BooleanType。因为Python的BooleanType是不允许被继承的。并且两者底层的数据存储长度也是不一样的。
18、虽然在Python中bool是int的子类。但是在NumPy中bool_并不是int_的子类,bool_甚至不是一个number类型。
19、在Python3中,int_不再继承Python3中的int了,因为int不再是一个固定长度的整数。
20、NumPy默认的数据类型是float_。
21、下面的三种数据类型长度是可变的,
22、上面描述的字符代码,为了和Python的其他模块进行兼容,比如struct,需要进行下面适当的修正:
23、c->S1,b->B,1->b,s->h,w->H,和u->I.
24、本文已收录于http://www.flydean.com/03-python-numpy-scalar/
25、最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
26、欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
关于本次scalar是什么意思?用法、例句和NumPy之:标量scalars的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。