Python中没有数组,虽然列表可以做出最基本的数组,但在数据量较大时,使用列表的速度返回速度非常慢。因此,Numpy为Python提供了真正的数组功能,以及对数据进行快速处理的函数。Numpy内置函数处理数据的速度是C语言级别的。
Numpy安装
pip install numpy -i https://pypi.doubanio.com/simple
- 在这里我们使用豆瓣源安装numpy。
如果想正式入门数据分析行业,则推荐安装anaconda,内置180个科学计算包,方便以后使用
Numpy操作
基本属性
- Numpy包含很多自己的属性和方法,接下来介绍一下Numpy常用的属性
import numpy as np
num = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(num.ndim) #数组的维度个数
#####2
print(num.size) #数组元素的总数
#####9
print(num.shape) #数组的维度
#####(3,3)
print(num.dtype) #数组的元素类型
#####int32
print(num.data) #数组的实际元素
#####<memory at 0x0000025AFFE373C8>
print(num.itemsize)#数组每个元素字节大小
#####4
创建数组
import numpy as np
num = np.array([[1, 2, 3], [4, 5, 6],[7,8,9]]) # 创建二维数组
- 接下来举例说明数组函数调用
import numpy as np
num = np.array([[1, 2, 3], [4, 5, 6],[7,8,9]])
print(num)
######array([[1, 2, 3],
###### [4, 5, 6],
###### [7, 8, 9]])
print(np.zeros((3,2)))
######array([[0., 0.],
###### [0., 0.],
###### [0., 0.]])
print(np.ones((2,3,4),dtype=np.int8))
######array([[[1, 1, 1, 1],
###### [1, 1, 1, 1],
###### [1, 1, 1, 1]],
###### [[1, 1, 1, 1],
###### [1, 1, 1, 1],
###### [1, 1, 1, 1]]], dtype=int8)
print(np.empty(3))
######array([1.13224202e+277, 2.13290495e-313, 0.00000000e+000])
print(np.arange(1,10,3))
######array([1, 4, 7])
基本方法
- Numpy也可以做到加减乘除等运算。
import numpy as np
np.random.random((2, 3)) # 创建一个元素值为0-1之间的随机数的 2*3 的矩阵
num = np.array([2, 3, 4, 6, 1, 7, 9])
num.sum() # 求和
num.max() # 求最大值
num.min() # 求最小值
# 除此之外还内置很多函数
# prod 积 mean 平均数 std 标准差 var 方差 argin 最小值索引 argmax 最大值索引 median 中位数 any 至少一个为真 all 所有元素为真
- 数组切片与Python切片方式相同。
num[x,y,z] # 表示从x到y-1中按照步长z选取元素
- 数组也可以进行变形操作
num.reshape((x, y)) # 原数组变为x行y列,注意前后必须元素总和相同
num.resize((x, y)) # resize与reshape不同之处在于,resize改变数组本身
num.ravel() # 多维数组展平为一维
num.T # 数组转置