本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。
1.ndim
ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。
2.shape
shape:表示各位维度大小的元组。返回的是一个元组。
对于一维数组:有疑问的是为什么不是(1,6),因为arr1.ndim维度为1,元组内只返回一个数。
对于二维数组:前面的是行,后面的是列,他的ndim为2,所以返回两个数。
对于三维数组:很难看出,下面打印arr3,看下它是什么结构。
先看最外面的中括号,包含[[1,2,3],[4,5,6]]和[[7,8,9],[10,11,12]],假设他们为数组A、B,就得到[A,B],如果A、B仅仅是一个数字,他的ndim就是2,这就是第一个数。但是A、B是(2,3)的数组。所以结合起来,这就是arr3的shape,为(2,2,3)。
将这种方法类比,也就可以推出4维、5维数组的shape。
3.dtype
dtype:一个用于说明数组数据类型的对象。返回的是该数组的数据类型。由于图中的数据都为整形,所以返回的都是int32。如果数组中有数据带有小数点,那么就会返回float64。
有疑问的是:整形数据不应该是int吗?浮点型数据不应该是float吗?
解答:int32、float64是Numpy库自己的一套数据类型。
4.astype
astype:转换数组的数据类型。
int32 --> float64 完全ojbk
float64 --> int32 会将小数部分截断
string_ --> float64 如果字符串数组表示的全是数字,也可以用astype转化为数值类型
注意其中的float,它是python内置的类型,但是Numpy可以使用。Numpy会将Python类型映射到等价的dtype上。
以上是这四个方法的简单用法,之后若有什么新发现再做补充。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。