NumPy库简介
NumPy库使用Python进行科学计算,尤其是数据分析时,所用到的一个基础库。它是大量Python数学和科学计算包的基础,比如我们后面会讲到的pandas库就用到了NumPy。pandas库专门用于数据分析,充分借鉴了Python标准库NumPy的相关概念。而Python标准库所提供的内置工具对数据分析方面的大多数计算来说都过于简单而不够用。
为了更好地理解和使用Python所有的科学计算包,尤其是Pands,需要先掌握Numpy库的用法,这样才能把pandas的用处发挥到极致。
NumPy库的核心
整个NumPy库的基础是ndarray(即N维数组)对象。它是一种由同质元素组成的多维数组
,元素数量是事先指定好的。同质指的是几乎所有元素的类型和大小都相同。事实上,数据类型由另外一个叫做dtype的NumPy对象来指定;每个ndarray只有一种dtype类型。
数组的维数和元素数量由数组的型来确定,数组的型由N个正整数组成的元组来指定,元组的每个元素对应每一维的大小。数组的维统称为轴,轴的数量被称为秩。
Numpy数组的另一个特点是大小固定,也就是说,创建数组时一旦指定好大小,就不会再发生改变。这与Python的列表有所不同,列表的大小是可以改变的。
numpy 提供了两个基本的对象: ndarray 和 ufunc. ndarray是存储数据的多维数组, 而 ufunc 是对数组进行处理的函数。
2.numpy 的安装:
pip install numpy
如何创建一个 ndarray对象
import numpy as np
data = np.array([1,2,3])
data = np.asarray([1,2,3])
print(data)
#>>> [1 2 3]
将ndarray转回list类型
df = data.tolist()
print(df)
#>>> [1,2,3]
查看矩阵的形态
df = data.shape
print(df)
#>>>(3,)
查看矩阵的维度
df = data.ndim
print(df)
#>>> 1
生成区间数,0-10之间 左臂右开
df = np.arange(10)
print(df)
#>>> [0 1 2 3 4 5 6 7 8 9]
df1 = np.arange(20).reshape(4,5)
print(df1)
#>>>
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
矩阵的乘积
df = np.dot(data[1],data[2])
print(df)
#>>> 6
矩阵的元素个数
df = data.size
print(df)
#>>> 3
矩阵的求和
df = np.sum(data)
print(df)
#>>> 6
求取平均值
# 求得平均值并保留小数点后两位
df = round(np.mean(data),2)
print(df)
#>>> 2
随机种子,固定编码
#random.seed()的作用就是在第一次生成后,每次运行都固定生成数据不变
np.random.seed(10)
#随机生成2-50之间的数, 并且形态为 5行 3列 的矩阵
df = np.random.randint(2,50,size=(5,3))
print(df)
#>>>
[[11 38 17]
[ 2 30 27]
[31 31 10]
[11 2 44]
[42 38 18]]
行,列 的拼接
date = np.arange(10).reshape(2,5)
date1 = np.arange(15).reshape(3,5)
date2 = np.arange(16).reshape(2,8)
df1 =np.r_[date,date1] #r_ 行的拼接 , 列必须相同
df2 = np.c_[date,date2] #c_ 列的拼接, 行必须相同
print(df1)
print(df2)
#>>>
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
[[ 0 1 2 3 4 0 1 2 3 4 5 6 7]
[ 5 6 7 8 9 8 9 10 11 12 13 14 15]]
生成随机n到y之间的 等差数列 [起n 始y]
#随机生成n-y之间的10个数,但是起始位和结束位为它们自身
df = linspace(start=n,stop=y,num=10)
print(df)
#>>>
[0.00240676 0.54881636 0.12697184 0.07979268 0.2350386 0.65996495
0.21495319 0.20304662 0.38286511 0.2248728 ]
T矩阵转置, 行变例
data = np.arange(20),reshape(2,2,5)
df =data.T
print(data)
print(df)
#>>>>
[[[ 0 1 2 3 4]
[ 5 6 7 8 9]]
[[10 11 12 13 14]
[15 16 17 18 19]]]
[[[ 0 10]
[ 5 15]]
[[ 1 11]
[ 6 16]]
[[ 2 12]
[ 7 17]]
[[ 3 13]
[ 8 18]]
[[ 4 14]
[ 9 19]]]
花了一点时间, 写了一下numpy 常用的一些方法, 同样是为了加强记忆, 也希望能帮到刚学的朋友!!!