【笔记】python数据分析——numpy初识2
## 往期数据分析笔记[【笔记】python数据分析——numpy初识1](https://www.52pojie.cn/thread-1381772-1-1.html)
## 数组对象属性
数组对象属性一共有5个,它们分别是:
ndim
shape
size
dtyoe
itemsize
其中shape和dtype我们在第一节的时候就已经介绍过了
### ndim属性
首先我们第一步就是导入numpy包
```
import numpy as np
```
接下来我们就看下ndim的作用
```
data1 = [,]
arr1 = np.array(data1)
print(arr1)
print(arr1.ndim)
```
运行结果:
[
]
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=[,]
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=[,]
arr1=np.array(data1,dtype='int64',ndmin=6)
print(arr1)
```
运行结果:
[[[[[
]]]]]
它增加了我们质的数量(也就是左右两边方括号的个数),如果ndmin的值是1或者2的话,它的值就不会增加,因为后面的数代表最小的质,如果你定义的质小于这个,它才会自己增加维度,如果你定义的数字大于或者等于你原有的,原来的质就不会改变
## 数组数据类型
numpy会为新建的numpy数组自动推断一个合适的数据类型
数组数据类型有:
int 整型
float 浮点数
complex 复数
bool 布尔型
string_ 字符串
object 对象
数据类型强制修改有两种方式
- dtype参数强制修改
```
data1=[,]
arr1=np.array(data1,dtype='object')
print(arr1)
print(arr1.dtype)
```
运行结果:
[
]
object
- 函数的赋值方法
```
arr2 = arr1.astype('float64')
print(arr2)
```
运行结果:
[
]
**注意:astype会形成一个新的数组,而在array中修改则是在原数组中改变**
也就是说arr2又是一个新的数组
- 一个小的细节问题
```
data1=[,]
arr1=np.array(data1)
print(arr1)
print(arr1.dtype)
```
运行结果:
[
]
float64
如果我们的数据里面有一个浮点型的数,所有数据都会转换成浮点型,接下来大家想一下,如果我们强制转换类型成int32,是会四舍五入呢,还是会截取掉小数点后的呢
接下来我们看看
```
arr3=arr1.astype('int32')
print(arr1)
print(arr3)
```
运行结果:
[
]
[
]
**注意:如果原项目中有浮点型的数据,转换成整型之后会将小数点后的数截掉,并不会四舍五入**
## 今日鸡汤
**这世界上,从来不会无路可走,努力且自律的人,披荆斩棘,伤痕累累也会艰难的走过去。** 哈哈哈 感谢大佬分享 先收藏了还没学到这么多,以后一定用得上 hyfxiangnian 发表于 2021-4-15 15:34
介绍数据类型的时候貌似拼写错误了,dtope,应该是dtype吧,嘻嘻~~
对对对,抱歉呀,感谢你指出错误:lol 来了,真好 aa0276 发表于 2021-3-3 22:21
来了,真好
来了啊,今天学习了吗:loveliness: 讲的很细,学习了,谢谢! 萌新路过,好久没碰python了,最近得捡起来了{:301_999:} lyl610abc 发表于 2021-3-3 22:43
萌新路过,好久没碰python了,最近得捡起来了
我也是小白一个,大家共同进步 感谢大佬分享,马克一下! 感谢分享,希望继续更新 很好,学习了,感谢分享
页:
[1]
2