Numpy
一、数据分析简介
-
数据分析流程(得洗展建析)
-
Obtain(获得数据)
Scrapy -
Scrub(清洗数据)
Numpy、Pandas -
Explore(展示数据)
Matplotlib\Seaborn -
Model(数据建模)
scikit-learn\SciPy\TensorFlow -
iNterpret(解析数据)
Bokeh\D3.js
-
二、Numpy 库
1. 功能:操作数组
数组元素必须是同一数据类型,列表元素可以是不同数据类型。
列表不可以进行四则运算,数组可以进行四则运算
2. 创建数组
-
array()
np.array(列表或元组)
-
arange()-创建某个范围的数组,指定步长
np.arange(start, end, step)
-只有一个参数,表示只有结束值,默认开始值为0
-只有两个参数,表示有开始值和结束值,左闭右开
-只有三个参数,表示有开始值、结束值和步长,step可以是任意的数
-
linspace()-创建某个范围的数组,指定个数
np.linspace(start, end, step, endpoint=True或False,retstep = ture) # endpoint = False 表示范围为左闭右开,endpoint = True 表示范围为左闭右闭 # retstep 为true返回一个步长
-
zeros()-创建全是0的数组
np.zeros(shape,dtype) """ dtype = [('x', 'i4'), ('y', 'i4')]: 这是一个数据类型说明符的列表,定义了复合数据类型的结构。 -'x'和'y'是字段名称。 -'i4'是NumPy的数据类型代码,表示一个32位的有符号整数(通常对应于C语言中的int类型)。 """
-
ones()-创建全是1的数组
np.ones(shape,dtype)
3. 创建随机数组
-
随机整数数组
np.random.randint(start,end,size = 元组或整数)
-
随机浮点数数组,范围[0,1)
np.random.rand(m,n) #创建一个m*n的数组
-
随机浮点数数组,符合正态分布
np.random.randn(m,n) #创建一个m*n的符合正态分布的随机数组
4. 数组属性
- ndim-说明纬度的个数
- dtype-说明数组中每个元素的类型
- size-说明数组的元素个数
- shape-说明数组的形状
5. 元素操作
-
访问元素-使用下标的方式
arr[1,2]与arr[1] [2] 表达相同
-
修改元素-使用下标的方式
修改一整行的数据arr[row_num] = [n1,n2,n3,……]
-
删除元素
np.delete(arr,m,axis) # m表示根据axis来表示行或者列数(从0开始),
-
添加元素
np.append(arr,value,axis = n) # append是返回一个新的数组,不是在原来数组上进行修改
axis = n 表示沿着“第n个下标”变化的方向进行操作,下面有两个说明的例子
import numpy as np
arr = np.array([[10,20,30],[40,50,60]])
result1 = np.append(arr,[[11,22,33]],axis = 0)
print(result1)
[[10 20 30]
[40 50 60]
[11 22 33]]
result2 = np.append(arr,[[11],[22]],axis = 1)
print(result2)
#当axis = 1 要求两个数组的行数必须相同否则将报错
[[10 20 30 11]
[40 50 60 22]]
result3 = np.append(arr,[[11,22],[33,44]])
print(result3)
#当axis为空时,append将两个数组都打为一维数组,并组合为一起
[10 20 30 40 50 60 11 22 33 44]
-
切片的方式
#切片操作的一般形式是: arr[start:stop:step] """ start 是切片开始的位置索引。 stop 是切片结束的位置索引(不包括该索引处的元素)。 step 是步长,表示取元素的间隔。
特殊用法 arr[::-1]:
当 step 设置为 -1 时,切片操作将从数组的末尾开始向前取元素,这实现了反转的效果。
“”"
6. 数组操作
- 修改形状
arr.reshape(m,n)
- 修改维度
np.array(arr,