科学计算库Numpy-常用函数
来源:互联网 发布:网络洗剪吹是什么意思 编辑:程序博客网 时间:2024/06/05 03:25
假定所有操作都事先导入numpy库
import numpy as np
1、平方根和次方根
B = np.array([0, 1, 2])print(B)print('----------')#计算e的次方print(np.exp(B))print('----------')#计算次方根print(np.sqrt(B))
结果为:
[0 1 2]----------[ 1. 2.71828183 7.3890561 ]----------[ 0. 1. 1.41421356]
2、向下取整
a = np.floor(10 * np.random.random((3, 4)))print(a)
结果为:
[[ 6. 8. 1. 7.] [ 2. 2. 2. 7.] [ 7. 1. 5. 7.]]
3、矩阵与向量的相互转换和矩阵的转置
print(a.ravel())print('----------')#向量转换为矩阵a.shape = (6, 2)print(a)print('----------')#矩阵转置print(a.T)
结果为:
[ 6. 8. 1. 7. 2. 2. 2. 7. 7. 1. 5. 7.]----------[[ 6. 8.] [ 1. 7.] [ 2. 2.] [ 2. 7.] [ 7. 1.] [ 5. 7.]]----------[[ 6. 1. 2. 2. 7. 5.] [ 8. 7. 2. 7. 1. 7.]]
4、矩阵的拼接
a = np.floor(10 * np.random.random((2, 2)))b = np.floor(10 * np.random.random((2, 2)))print(a)print('----------')print(b)print('----------')#按行拼接print(np.vstack((a, b)))print('----------')#按列拼接print(np.hstack((a, b)))
结果为:
[[ 0. 9.] [ 8. 0.]]----------[[ 5. 9.] [ 1. 3.]]----------[[ 0. 9.] [ 8. 0.] [ 5. 9.] [ 1. 3.]]----------[[ 0. 9. 5. 9.] [ 8. 0. 1. 3.]]
5、矩阵的切分
a = np.floor(10 * np.random.random((2, 12)))print(a)print('----------')#按列把a平均切成2份print(np.hsplit(a, 2))print('----------')#按行把a平均切成2份print(np.vsplit(a, 2))print('----------')#在特定位置进行切分(第3列和第7列)print(np.hsplit(a, (3, 7)))
结果为:
[[ 8. 2. 7. 4. 0. 7. 8. 0. 7. 2. 7. 6.] [ 2. 1. 7. 8. 6. 6. 1. 4. 4. 8. 3. 7.]]----------[array([[ 8., 2., 7., 4., 0., 7.], [ 2., 1., 7., 8., 6., 6.]]), array([[ 8., 0., 7., 2., 7., 6.], [ 1., 4., 4., 8., 3., 7.]])]----------[array([[ 8., 2., 7., 4., 0., 7., 8., 0., 7., 2., 7., 6.]]), array([[ 2., 1., 7., 8., 6., 6., 1., 4., 4., 8., 3., 7.]])]----------[array([[ 8., 2., 7.], [ 2., 1., 7.]]), array([[ 4., 0., 7., 8.], [ 8., 6., 6., 1.]]), array([[ 0., 7., 2., 7., 6.], [ 4., 4., 8., 3., 7.]])]
6、变量赋值
#①赋ID,共用同一个ID,两者除变量名不同外完全相同a = np.arange(12)b = aprint(a is b)b.shape = 3, 4print(a.shape)print(id(a))print(id(b))print('----------')#②浅复制,不同的ID,但共用一组数据c = a.view()print(c is a)c.shape = 2,6print(a.shape)c[0, 4] = 1234print(a)print(id(a))print(id(c))print('----------')#③深复制,两个变量完全独立,相互无影响d = a.copy()print(a is d)d[0, 0] = 999print(a)print(id(a))print(id(d))
结果为:
True(3, 4)19816597865761981659786576----------False(3, 4)[[ 0 1 2 3] [1234 5 6 7] [ 8 9 10 11]]19816597865761981659737904----------False[[ 0 1 2 3] [1234 5 6 7] [ 8 9 10 11]]19816597865761981659786336
7、最值
data = np.sin(np.arange(20)).reshape(5,4)print(data)print('----------')#按列返回最大值的索引ind = data.argmax(axis = 0)print(ind)print('----------')data_max = data[ind, range(data.shape[1])]print(data_max)
结果为:
[[ 0. 0.84147098 0.90929743 0.14112001] [-0.7568025 -0.95892427 -0.2794155 0.6569866 ] [ 0.98935825 0.41211849 -0.54402111 -0.99999021] [-0.53657292 0.42016704 0.99060736 0.65028784] [-0.28790332 -0.96139749 -0.75098725 0.14987721]]----------[2 0 3 1]----------[ 0.98935825 0.84147098 0.99060736 0.6569866 ]
8、矩阵扩充
a = np.arange(0, 40, 10)print(a)#将矩阵扩充为2行2列,每个元素的值都为ab = np.tile(a, (2, 2))print(b)
结果为:
[ 0 10 20 30][[ 0 10 20 30 0 10 20 30] [ 0 10 20 30 0 10 20 30]]
9、排序
a = np.array([[4, 3, 5],[1, 2, 1]])print(a)print('----------')#按行进行顺序排序b = np.sort(a, axis = 1)print(b)#等同于#a.sort(axis = 1)#print(a)print('----------')a = np.array([5, 3, 1, 2])#返回顺序排序后的元素索引值j = np.argsort(a)print(j)print('----------')#进行顺序排序print(a[j])
结果为:
[[4 3 5] [1 2 1]]----------[[3 4 5] [1 1 2]]----------[2 3 1 0]----------[1 2 3 5]
另附:
科学计算库Numpy-数据结构
科学计算库Numpy-数据操作
科学计算库Numpy-矩阵属性
科学计算库Numpy-矩阵操作
阅读全文
0 0
- 科学计算库Numpy-常用函数
- Python科学计算库NumPy
- Python3科学计算库numpy
- 科学计算库Numpy-数据结构
- matlab科学计算常用函数
- numpy计算及常用函数
- Python科学计算库Numpy的使用
- python 科学计算库 - Numpy,Scipy,Pandas
- Python科学计算库NumPy基础操作
- 科学计算库Numpy --数组(ndarray)
- python科学计算库numpy的使用
- 科学计算库Numpy-数据操作
- 科学计算库Numpy-矩阵属性
- 科学计算库Numpy-矩阵操作
- Python---Numpy科学计算库的使用
- python科学计算numpy
- python科学计算:numpy
- Python 科学计算 -- Numpy
- 文章标题
- JavaScript Shell入门分享
- main函数argv两种参数差异比较
- 设计模式-开放封闭原则
- gdb常用命令
- 科学计算库Numpy-常用函数
- MyBatis学习资料
- Coursera算法UnionFind变迁史
- Object Detection系列(二) SPP-Net
- 信号的使用心得
- hopfield神经网络
- 高效DDD聚合设计
- 十大前端开发框架(上)
- 类(python)