前记~
IPython的%run命令
常用命令 | 说明 |
%magic | 显示所有魔术命令 |
%hist | IPython命令的输入历史 |
%pdb | 异常发生后自动进入调试器 |
%reset | 删除当前命令空间中的全部变量或名称 |
%who | 显示IPython当前命令空间中已经定义的变量 |
%time statement | 给出代码的执行时间,statement表示一段代码 |
%timeit statement | 多次执行代码,计算综合平均执行时间 |
开始了!
理解一维、二维、多维、高维数据
在这里重点说下高维数据,其余维度与常见的概念一致
高维数据:高维数据仅利用最基本的二元关系展示数据间的复杂结构
如下面的键值对
数据维度的Python表示
一维数据:列表和集合类型
二维数据:列表类型
多维数据:列表类型
高维数据:字典类型或数据表示格式(JSON、XML、YAML格式等)
NumPy
- NumPy是一个开源的Python科学计算基础库,一个强大的N维数组对象ndarray
- 广播功能函数
- 整合C/C++/Fortran代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
1、NumPy的引用
import numpy as np
2、N维数组对象:ndarray
- 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。
- 设置专门的数组对象,经过优化,可以提升这类用用的运算速度。
- ndarray是一个多维数组对象,由两部分构成:①实际数据 ②描述这些数据的元数据(数据维度、数据类型等)
- ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。
例如,计算,其中,A和B是一维数组
def pySum(): import numpy as np
a = [0,1,2,3,4] def npSum():
b = [9,8,7,6,5] a = np.array([0,1,2,3,4])
c = [] b = np.array([9,8,7,6,5])
for i in range(len(a)): c = a**2 + b**3
c.append(a[i]**2 + b[i]**3) return c
return c print(npSum())
print(pySum())
运行结果:[729, 513, 347, 225, 141]
(1)轴(axis):保存数据的维度
秩(rank):轴的数量,即有多少个维度
(2)ndarray对象的属性
属性 | 说明 |
.ndim | 秩,即轴的数量或维度的数量 |
.shape | ndarray对象的尺度,对于矩阵,n行m列 |
.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
.dtype | ndarray对象的元素类型 |
.itemsize | ndarray对象中每个元素的大小,以字节为单位 |
import numpy as np
np.random.seed(0) #设置随机数种子,以确保每次程序执行时都可以生成同样的随机数组
x1 = np.random.randint(10,size=6) #一维数组
x2 = np.random.randint(10,size=(3,4)) #二维数组
x3 = np.random.randint(30,size=(3,4,5)) #三维数组
print("x3 ndim:",x3.ndim) #每个数组有ndim(数组的维度)、shape(数组每个维度的大小)和size(数组的总大小)属性:
x3 ndim: 3
print("x3 shape:",x3.shape)
x3 shape: (3, 4, 5)
print("x3 size:",x3.size)
x3 size: 60
其他属性包括每个数组元素字节大小的itemsize,以及表示数组总字节大小的属性nbytes,数组的数据类型dtype.一般认为,nbytes跟itemsize和size的乘积大小相等。
(3)ndarray的元素类型
数据类型 | 说明 |
bool | 布尔类型,True或False |
intc | 与C语言中的int类型一致,一般是int32或int64 |
intp |