什么是数据分析?
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用的信息形成结论而对结论加以详细研究、概括、总结的过程。
使用python做数据分析的常用库
-
numpy 基础数值算法
-
scipy 科学计算
-
matplotlib 数据可视化
-
pandas 序列高级函数
numpy概述
- Numerical Python, 数值的python,补充了Python语言所欠缺的数值计算能力。
- Numpy是其他数据分析及机器学习库的底层库。
- Numpy完全标准C语言实现,效率充分优化。
- Numpy开源免费。
numpy的历史
- 1995年, Numeric发布(numpy的前身)。
-
2001年,Scipy->Numarray,提供多维数组运算。
-
2005年,Numeric+Numarray -> Numpy
- 2006年,Numpy脱离Scipy称为独立项目。
numpy的核心:多维数组
1 |
import numpy as np |
numpy基础
ndarray数组
内存中的ndarray对象
元数据(metadata)
存储对目标数组的描述信息,如:dim count, dimensions, dtype, data等等。
实际数据
完整的数组内容
将实际数据与元数据分开存放,一方面提高了内存空间的使用效率, 另一方面减少对实际数据的访问频率, 提高效率。
Numpy数组是同质数组,所有元素的数据类型必须相同。
ndarray对象的创建
np.array(任何可以被解释为Numpy数组的逻辑结构)
1 |
import numpy as np |
np.arange(起始值(0), 终止值, 步长(1))
1 |
print(np.arange(0, 10, 1)) |
np.zeros(数组元素个数, dtype=’类型’)
np.ones(数组元素格式, dtype=’类型’)
1 |
a = np.zeros(10, dtype='int32') |
ndarray对象属性的基本操作
数组的维度:array.shape
1 |
a = np.arange(1, 9) |
元素的类型:array.dtype
1 |
# 测试元素的类型相关操作 |
数组元素个数:array.size
1 |
# 测试数组元素的个数 |
数组元素索引(下标)
1 |
# 测试数组索引操作 |
ndarray对象属性操作详解
Numpy的内部基本数据类型
类型名 | 类型表示符 |
---|---|
布尔型 | bool_ |
有符号整数型 | int8(-128~127)/int16/int32/int64 |
无符号整型 | uint8/uint16/uint32/uint64 |
浮点型 | float16/float32/float64 |
复数型 | complex64/complex128 |
字符串型 | str_ (每个字符32位Unicode编码) |
自定义复合类型
1 |
""" |
类型字符码
类型 | 字符码 |
---|---|
np.bool_ | ? |
np.int8/16/32/64 | i1/i2/i4/i8 |
np.uint8/16/32/64 | u1/u2/u4/u8 |
np.float16/32/64 | f2/f4/f8 |
np.complex64/128 | c8/c16 |
np.str_ | U<字符数> |
np.datetime64 | M8[Y / M / D / h / m / s] |
ndarray数组对象维度操作
视图变维(数据共享): reshape() ravel()
1 |
a = np.arange(1, 9) |
复制变维(数据独立): flatten()
1 |
# 复制变维 数据独立 |
就地变维: 使用shape属性直接改变原数组对象的维度,不返回新数组。 resize(2, 2)
1 |
# 就地变维 |
ndarray数组对象的切片操作
1 |
# 数组切片的参数与列表切片基本一致 |
1 |
import numpy as np |
多维数组的切片操作
1 |
a = a.reshape(3, 3) |
ndarray数组的掩码操作
1 |
import numpy as np |
多维数组的组合与拆分
垂直方向的操作:
1 |
# 在垂直方向a与b摞起来 |
水平方向的操作:
1 |
# 在水平方向a与b并起来 |
深度方向的操作:
1 |
# 在深度方向a与b并起来 |
多维数组组合与拆分的通用方法:
1 |
# 实现a与b数组的组合操作 |
长度不等的数组的组合:
1 |
# 长度不等的数组的组合 |
简单的一维数组的组合方案
1 |
# 把a与b两个一维数组摞在一起成两行 |
ndarray对象的其他常用属性
- ndim 维数(n维数组的n)
- itemsize 元素所占用字节数
- nbytes 数组所占用的总字节数
- real 复数的实部
- imag 复数的虚部
- T 二维数组的转置数组
- flat 多维数组的扁平迭代器
近期评论