qianshang666 发表于 2021-3-3 22:18

【笔记】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)
```
运行结果:
[
]
[
]
**注意:如果原项目中有浮点型的数据,转换成整型之后会将小数点后的数截掉,并不会四舍五入**

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

EricLee66 发表于 2021-3-3 22:57

哈哈哈   感谢大佬分享       先收藏了还没学到这么多,以后一定用得上

qianshang666 发表于 2021-4-15 16:19

hyfxiangnian 发表于 2021-4-15 15:34
介绍数据类型的时候貌似拼写错误了,dtope,应该是dtype吧,嘻嘻~~

对对对,抱歉呀,感谢你指出错误:lol

aa0276 发表于 2021-3-3 22:21

来了,真好

qianshang666 发表于 2021-3-3 22:30

aa0276 发表于 2021-3-3 22:21
来了,真好

来了啊,今天学习了吗:loveliness:

xjshuaishuai 发表于 2021-3-3 22:36

讲的很细,学习了,谢谢!

lyl610abc 发表于 2021-3-3 22:43

萌新路过,好久没碰python了,最近得捡起来了{:301_999:}

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

很好,学习了,感谢分享
页: [1] 2
查看完整版本: 【笔记】python数据分析——numpy初识2