二>. 科学计算基础包 ---numpy
1>. ipython魔术命令: 以%开始的命令
---> %run : 执行文件代码
---> %paste : 执行剪贴板代码
---> %timeit : 评估运行时间
---> %pdb : 自动调试
2>. ipython高级功能:
jupyter
3>. numpy-array基础:
a. NumPy 是高性能科学计算和数据分析的基础包,它是pandas等其他各种工具的基础。
b. NumPy的主要功能:
---> ndarray, 一个多维数组结构,高效且节省空间
---> 无需循环对整组数据进行快速运算的数学函数
---> 线性代数,随机数生成和傅里叶变换功能
c. 安装方法: pip install numpy
d. 引用方式: import numpy as np
e. ndarray - 多维数组对象
创建ndarray: np.array(array_like)
f. 数组与列表的区别:
数组对象内的元素类型必须相同
数组大小不可修改
4>. numpy-array创建:
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版 支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones() 根据指定形状和dtype创建全1数组
empty() 根据指定形状和dtype创建空数组(随机值)
eye() 根据指定边长和dtype创建单位矩阵
5>. numpy-array索引和切片:
ndarray -- 批量运算
a. 数组和标量之间的运算
---> a+1 a*3 1//a a**0.5 a>5
b. 同样大小数组之间的运算
---> a+b a/b a**b a%b a==b
ndarray -- 索引
a. 一维数组的索引: a[5] //下标为5的a数组数值
b. 多维数组的索引:
列表式写法: a[2][3]
新式写法: a[2,3]
ndarray -- 切片
a. 一维数组的切片: a[5:8] a[4:] a[2:10] = 1
b. 多维数组的切片: a[1:2, 3:4] a[:, 3:5] a[:, 1]
c. 数组切片与列表切片不同:数组切片时并不会自动复制(而是创建一个视图),
在切片数组上的修改会影响原数组。
--> copy()方法可以创建数组的深拷贝
6>. numpy-array布尔型索引:
a. 问题: 给一个数组,选出数组中所有大于5的数。
---> 答案: a[a>5]
b. 原理:
-->数组与标量的运算: a>5会对a中的每一个元素进行判断,返回一个布尔数组
-->布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组。
7>. numpy-array花式索引:
a. 问题: 对于一个数组,选出其中第1,3,4,6,7 个元素,组成新的二维数组
---> 答案: a[[1,3,,4,6,7]]
b. 问题: 对一个二维数组,选出其中第一列和第三列,组成新的二维数组。
---> 答案: a[:, [1,3]]
8>. numpy-array通用函数:
numpy -- 通用函数
a. 通用函数: 能同时对数组中所有元素进行运算的函数
b. 常见通用函数
一元函数: abs, sqrt, exp, log, ceil,floor rint trunc, modf, isnan, isinf, cos, sin, tan
二元函数: add, substract, multiply, divide, power, mod, maximum, mininum
c. nan(Not a Number): 不等于任何浮点数(nan != nan)
d. inf(infinity): 比任何浮点数都大
e. NumPy中创建特殊值: np.nan np.inf
f. 在数据分析中,nan常被用作表示数据缺失值
9>. numpy-统计方法和随机数生成:
sum 求和 min 求最小值
mean 求平均值 max 求最大值
std 求标准差 argmin 求最小值索引
var 求方差 argmax 求最大值索引
numpy -- 随机数生成
随机数函数在np.random子包内
rand 给定形状产生随机数组(0到1之间的数)
randint 给定形状产生随机整数
choice 给定形状产生随机选择
shuffle 与random.shuffle相同
uniform 给定形状产生随机数组
1>. ipython魔术命令: 以%开始的命令
---> %run : 执行文件代码
---> %paste : 执行剪贴板代码
---> %timeit : 评估运行时间
---> %pdb : 自动调试
2>. ipython高级功能:
jupyter
3>. numpy-array基础:
a. NumPy 是高性能科学计算和数据分析的基础包,它是pandas等其他各种工具的基础。
b. NumPy的主要功能:
---> ndarray, 一个多维数组结构,高效且节省空间
---> 无需循环对整组数据进行快速运算的数学函数
---> 线性代数,随机数生成和傅里叶变换功能
c. 安装方法: pip install numpy
d. 引用方式: import numpy as np
e. ndarray - 多维数组对象
创建ndarray: np.array(array_like)
f. 数组与列表的区别:
数组对象内的元素类型必须相同
数组大小不可修改
4>. numpy-array创建:
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版 支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones() 根据指定形状和dtype创建全1数组
empty() 根据指定形状和dtype创建空数组(随机值)
eye() 根据指定边长和dtype创建单位矩阵
5>. numpy-array索引和切片:
ndarray -- 批量运算
a. 数组和标量之间的运算
---> a+1 a*3 1//a a**0.5 a>5
b. 同样大小数组之间的运算
---> a+b a/b a**b a%b a==b
ndarray -- 索引
a. 一维数组的索引: a[5] //下标为5的a数组数值
b. 多维数组的索引:
列表式写法: a[2][3]
新式写法: a[2,3]
ndarray -- 切片
a. 一维数组的切片: a[5:8] a[4:] a[2:10] = 1
b. 多维数组的切片: a[1:2, 3:4] a[:, 3:5] a[:, 1]
c. 数组切片与列表切片不同:数组切片时并不会自动复制(而是创建一个视图),
在切片数组上的修改会影响原数组。
--> copy()方法可以创建数组的深拷贝
6>. numpy-array布尔型索引:
a. 问题: 给一个数组,选出数组中所有大于5的数。
---> 答案: a[a>5]
b. 原理:
-->数组与标量的运算: a>5会对a中的每一个元素进行判断,返回一个布尔数组
-->布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组。
7>. numpy-array花式索引:
a. 问题: 对于一个数组,选出其中第1,3,4,6,7 个元素,组成新的二维数组
---> 答案: a[[1,3,,4,6,7]]
b. 问题: 对一个二维数组,选出其中第一列和第三列,组成新的二维数组。
---> 答案: a[:, [1,3]]
8>. numpy-array通用函数:
numpy -- 通用函数
a. 通用函数: 能同时对数组中所有元素进行运算的函数
b. 常见通用函数
一元函数: abs, sqrt, exp, log, ceil,floor rint trunc, modf, isnan, isinf, cos, sin, tan
二元函数: add, substract, multiply, divide, power, mod, maximum, mininum
c. nan(Not a Number): 不等于任何浮点数(nan != nan)
d. inf(infinity): 比任何浮点数都大
e. NumPy中创建特殊值: np.nan np.inf
f. 在数据分析中,nan常被用作表示数据缺失值
9>. numpy-统计方法和随机数生成:
sum 求和 min 求最小值
mean 求平均值 max 求最大值
std 求标准差 argmin 求最小值索引
var 求方差 argmax 求最大值索引
numpy -- 随机数生成
随机数函数在np.random子包内
rand 给定形状产生随机数组(0到1之间的数)
randint 给定形状产生随机整数
choice 给定形状产生随机选择
shuffle 与random.shuffle相同
uniform 给定形状产生随机数组