吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3385|回复: 18
收起左侧

[Python 转载] 【笔记】python数据分析——numpy初识2

[复制链接]
qianshang666 发表于 2021-3-3 22:18

往期数据分析笔记

【笔记】python数据分析——numpy初识1

数组对象属性

数组对象属性一共有5个,它们分别是:
ndim
shape
size
dtyoe
itemsize
其中shape和dtype我们在第一节的时候就已经介绍过了

ndim属性

首先我们第一步就是导入numpy包

import numpy as np

接下来我们就看下ndim的作用

data1 = [[1,2,3,4],[5,6,7,8]]
arr1 = np.array(data1)
print(arr1)
print(arr1.ndim)

运行结果:
[[1 2 3 4]
[1 2 3 4]]
2
这个2就是我们对应的numpy数组的ndim属性,其实说白了,ndim这个属性指的是数组的质,也可以叫数据轴的个数,最好的记忆方法就是看两侧方括号的个数

size属性

print(arr1.size)

运行结果:8
size属性指的就是数组元素的个数,我们arr1中一共有8个值,所以这里运行结果是8

itemsize属性

print(arr1.itemsize)

运行结果:4
itemsize属性指的是我们创建的数组里面单个元素所占用的字节个数,这里为什么是4呢,因为现在arr1的dtype是int32,int32占用的就是四个字节,int16就是两个字节,int64就是八个字节

这个是可以修改的,你在定义numpy数组的时候就可以指定dtype,这样itemsize属性的值也会变

data1=[[1,2,3,4],[1,2,3,4]]
arr1=np.array(data1,dtype='int64')
print(arr1)
print(arr1.dtype)
print(arr1.itemsize)

这样修改一下dtype,itemsize属性值就变成了8,因为int64就是8个字节
为什么我们要使用itemsize呢
因为每个人的内存都是有限的,当我们后面做数据分析的时候,可能会导入大量数据,到时候可能会把内存挤爆

array中的ndmin参数

ndim和ndmin是不是感觉有那么一点点像,ndmin参数是用来指定数组最小的质的个数

data1=[[1,2,3,4],[1,2,3,4]]
arr1=np.array(data1,dtype='int64',ndmin=6)
print(arr1)

运行结果:
[[[[[[1 2 3 4]
[1 2 3 4]]]]]]
它增加了我们质的数量(也就是左右两边方括号的个数),如果ndmin的值是1或者2的话,它的值就不会增加,因为后面的数代表最小的质,如果你定义的质小于这个,它才会自己增加维度,如果你定义的数字大于或者等于你原有的,原来的质就不会改变

数组数据类型

numpy会为新建的numpy数组自动推断一个合适的数据类型
数组数据类型有:
int    整型
float    浮点数
complex    复数
bool    布尔型
string_    字符串
object    对象

数据类型强制修改有两种方式

  • dtype参数强制修改
    data1=[[1.9,2,3,4],[1,2,3,4]]
    arr1=np.array(data1,dtype='object')
    print(arr1)
    print(arr1.dtype)

    运行结果:
    [[1.9 2 3 4]
    [1 2 3 4]]
    object

  • 函数的赋值方法
    arr2 = arr1.astype('float64')
    print(arr2)

    运行结果:
    [[1. 2. 3. 4.]
    [5. 6. 7. 8.]]
    注意:astype会形成一个新的数组,而在array中修改则是在原数组中改变
    也就是说arr2又是一个新的数组

  • 一个小的细节问题
    data1=[[1.9,2,3,4],[1,2,3,4]]
    arr1=np.array(data1)
    print(arr1)
    print(arr1.dtype)

    运行结果:
    [[1.9 2.  3.  4. ]
    [1.  2.  3.  4. ]]
    float64
    如果我们的数据里面有一个浮点型的数,所有数据都会转换成浮点型,接下来大家想一下,如果我们强制转换类型成int32,是会四舍五入呢,还是会截取掉小数点后的呢
    接下来我们看看

    arr3=arr1.astype('int32')
    print(arr1)
    print(arr3)

    运行结果:
    [[1.9 2.  3.  4. ]
    [1.  2.  3.  4. ]]
    [[1 2 3 4]
    [1 2 3 4]]
    注意:如果原项目中有浮点型的数据,转换成整型之后会将小数点后的数截掉,并不会四舍五入

今日鸡汤

这世界上,从来不会无路可走,努力且自律的人,披荆斩棘,伤痕累累也会艰难的走过去。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

EricLee66 发表于 2021-3-3 22:57
哈哈哈     感谢大佬分享       先收藏了  还没学到这么多,以后一定用得上
 楼主| qianshang666 发表于 2021-4-15 16:19
hyfxiangnian 发表于 2021-4-15 15:34
介绍数据类型的时候貌似拼写错误了,dtope,应该是dtype吧,嘻嘻~~

对对对,抱歉呀,感谢你指出错误
aa0276 发表于 2021-3-3 22:21
 楼主| qianshang666 发表于 2021-3-3 22:30

来了啊,今天学习了吗
xjshuaishuai 发表于 2021-3-3 22:36
讲的很细,学习了,谢谢!
lyl610abc 发表于 2021-3-3 22:43
萌新路过,好久没碰python了,最近得捡起来了
 楼主| qianshang666 发表于 2021-3-3 22:45
lyl610abc 发表于 2021-3-3 22:43
萌新路过,好久没碰python了,最近得捡起来了

我也是小白一个,大家共同进步
邪恶的月月 发表于 2021-3-3 23:35
感谢大佬分享,马克一下!
zhaomingzhi 发表于 2021-3-3 23:55
感谢分享,希望继续更新
IT.net 发表于 2021-3-4 09:05
很好,学习了,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表