数据分析入门 --numpy

fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(20, 8), dpi=100)

axes[0][0] # 坐标系

设置刻度
set_xticks([number])
set_xticklabels([str_list])

折线图
能够显示数据的变化趋势
plt.plot()

散点图
两个量之间是否存在线性关系
plt.scatter()

柱状图
对比不同类别(个体)之间某一个量的大小关系
plt.bar(x,y, width= )

直方图
连续性的数据展示一组数据的分布状况(统计)
plt.hist(x, bins=)
42
区间:[160, 180]
2cm
[160, 165, 170, 180]

饼图
分类数据的占比情况(占比)
plt.pie(x, labels=)

numpy:
开源的Python科学计算库
快速处理任意维度的数组
Numpy支持常见的数组和矩阵操作
ndarray对象

n d array
n维数组

类型:
大小
(都有哪些操作)

numpy快的原因:
1 ndarray在底层存储的风格是元素级别的顺序表(要求所有的元素的类型是一直的)
2 numpy底层用C/C++ 的线性运算加速库
3 numpy不受python解释器的全局解释器锁 限制

ndarray的属性
.shape
.ndim (形状的数字个数就是维度)
.size (元素个数)
.dtype
.itemsize

1.1 生成0和1的数组
np.ones([3,4,5,6])
np.zeros()

1.2 从现有数组生成
np.array(ndrray)
np.asarray(ndarray)

1.3 生成固定范围的数组
np.arange(start, stop, step)

np.array(range(start, stop, step))

np.linspace(start, stop, num)

np.logspace(start, stop, num, base=)

1.4 生成随机数组
正态分布
注意:咱们的标准差越小,正态分布的图形越瘦高;标准差越大,正态分布的图形越扁平
np.random.normal(loc=0.0, scale=1.0, size=None)
均匀分布
np.random.uniform(low=0.0, high=1.0, size=[2,3])

2 数组的索引、切片
0,1,2
(2,3,4)
ndarray[ :, 0:2 , 0:2 ]
ndarray[ 0, 0:2 , 0:2 ]

ndarray[ 0, 0:2 , [0,2] ]

3 形状修改
ndarray.reshape(shape) # 产生新的ndarray,不修改原本的ndarray
ndarray.resize(shape) # 不产生新的ndarray,修改原本的ndarray
ndarray.T # ndim=2 行列互换

4 类型修改
ndarray.astype(np.int64) # 返回一个新的ndarray

5 序列化
ndarray.tostring()

反序列化
np.frombuffer(bytes, dtype=) # 必须手写类型
序列化和反序列化会丢失形状信息

6 数组的去重
np.unique(ndarray)

4.4 ndarray运算
ndarray > 60 产生bool的ndarray,可以当作bool索引

np.all(bool_ndarray) # 全True才True, 一个False就是False
np.any(bool_ndarray) # 全False才False,一个True就是True

3 np.where(三元运算符)
1 if cond else 0
np.where(bool_ndarray, 1, 0)
np.logical_and(temp > 60, temp < 90)
(temp > 60) & (temp < 90) # 结果还是一个bool_ndarray
np.logical_or(temp > 90, temp < 60)
(temp < 60) | (temp > 90)

a = np.array([900, 2012, 2014])
a > 2000
array([False, True, True])

np.where( a > 2000, a, 2000)

np.array([0, 1, 1])

4 统计运算
np.
min(ndarray, axis=)
max
mean
median # 中位数
mode # 众数
std
var

.argmax # 返回最大值的位置下标
.argmin # 返回最小值的位置下标

1数组与数的运算
ndarray +/-/*/div number
list * number # 原生的list不支持元素级别的数学运算

2 数组与数组的运算
arr1 arr2

.shape
.shape
形状靠右对齐,对应位置的数字(轴的长度)要不然相等,要不然其中一个是1

broadcast# 广播
arr1 = np.array([[0],[1],[2],[3]])
(4, 1)
arr2 = np.array([1,2,3])
(3,)

(4, 1)
(3,)

(2,6)
(2,1)

(2,6)
(6,)

3,3

9 7 8
21 19 20
15 22 23
m,n n,l m,l
(3,3) * ( 3,3) = (3, 3)
9 7 8



第i行第j列的元素 = 前矩阵的第i行和后矩阵的第j列的元素对象相乘的和

矩阵就是特殊的二维数组
矩阵乘法的规律 (m,n) * (n,l) = (m,l)

np.matmul(ndarray, ndarray) # 矩阵相乘
np.dot(ndarray, ndarray) # 点乘 点积
np.dot(ndarray, [0.7, 0.3]) # 这个也支持

向量

1 Pandas介绍
数据挖掘的开源python库
Numpy,matplotlib
独特的数据结构(类型)

2 为什么使用Pandas
表格处理神器

pandas中的类型
series
dataframe
panel(3维数据对象,已弃用)

series:
.values
.index

pd.Series(data=, index=)

pd.Series({key:value})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值