numpy—科学计算库

  1. e的次幂,开根号
    import numpy as np
    B = np.arange(3)
    print(B)
    print(np.exp(B))
    print(np.sqrt(B))
    —[0 1 2]
    [ 1. 2.71828183 7.3890561 ]
    [ 0. 1. 1.41421356]

  2. ravel 是将一个矩阵拉平成一个向量,即用向量的形式表示这个矩阵。而a.shape(6,2)又将一个向量转换为一个62的矩阵。a.T表示求矩阵a的一个转置矩阵 行和列进行变换。(如果整形操作中给定的维度为-1,则自动计算其他维度)
    a = np.floor(10
    np.random.random((3,4)))
    print(a)
    print(a.shape)
    print(a.ravel())
    a.shape = (6, 2)
    print(a)
    print(a.T)
    a.resize((2,6))
    print(a)
    a.reshape(3,-1)
    print(a)

—[[ 4. 9. 9. 9.]
[ 7. 1. 0. 9.]
[ 0. 4. 4. 9.]]
(3, 4)
[ 4. 9. 9. 9. 7. 1. 0. 9. 0. 4. 4. 9.]
[[ 4. 9.]
[ 9. 9.]
[ 7. 1.]
[ 0. 9.]
[ 0. 4.]
[ 4. 9.]]
[[ 4. 9. 7. 0. 0. 4.]
[ 9. 9. 1. 9. 4. 9.]]
[[ 4. 9. 9. 9. 7. 1.]
[ 0. 9. 0. 4. 4. 9.]]
[[ 5. 2. 2. 7.]
[ 5. 3. 2. 8.]
[ 8. 0. 2. 6.]]

  1. np.hstack((a,b)) 将a矩阵和b矩阵进行横向拼接;np.vstack((a,b))将a矩阵和b矩阵进行纵向拼接;
    a = np.floor(10np.random.random((2,2)))
    b = np.floor(10
    np.random.random((2,2)))
    print(a)
    print(’—’)
    print(b)
    print(’—’)
    print(np.hstack((a,b)))
    —[[ 0. 1.]
    [ 2. 6.]]
    —[[1. 0.]
    [4 .1 ]]

[[ 0. 1. 1. 0.]
[ 2. 6. 4. 1.]]

  1. hsplit是对行进行切分 a表示待切分的行参数 3表示切分成三份;np.hsplit(a,(3,4)) 传入元组 指定位置进行切割;vsplit是对列进行切分 a表示待切分的行参数 3表示切分成三份
    a = np.floor(10np.random.random((2,12)))
    print(a)
    print(np.hsplit(a,3))
    print(np.hsplit(a,(3,4))) #在第三列和第四列之后拆分a
    a = np.floor(10
    np.random.random((12,2)))
    print(a)
    np.vsplit(a,3)

—[[ 2. 9. 0. 3. 9. 6. 6. 1. 5. 2. 8. 0.]
[ 3. 4. 5. 7. 7. 3. 7. 1. 3. 4. 7. 9.]]
[array([[ 2., 9., 0., 3.],
[ 3., 4., 5., 7.]]),
array([[ 9., 6., 6., 1.],
[ 7., 3., 7., 1.]]),
array([[ 5., 2., 8., 0.],
[ 3., 4., 7., 9.]])]

[array([[ 2., 9., 0.],
[ 3., 4., 5.]]),
array([[ 3.],
[ 7.]]),
array([[ 9., 6., 6., 1., 5., 2., 8., 0.],
[ 7., 3., 7., 1., 3., 4., 7., 9.]])]

[[ 7. 9.]
[ 0. 6.]
[ 2. 4.]
[ 5. 2.]
[ 7. 4.]
[ 1. 2.]
[ 9. 2.]
[ 5. 7.]
[ 5. 5.]
[ 5. 5.]
[ 1. 9.]
[ 5. 3.]]

[array([[ 7., 9.],
[ 0., 6.],
[ 2., 4.],
[ 5., 2.]]),
array([[ 7., 4.],
[ 1., 2.],
[ 9., 2.],
[ 5., 7.]]),
array([[ 5., 5.],
[ 5., 5.],
[ 1., 9.],
[ 5., 3.]])]

  1. 简单的赋值,a与b的地址是相同的,这个就是所谓的深复制
    a = np.arange(12)
    b = a
    b is a #a和b是同一个ndarray对象的两个名称
    b.shape = 3,4
    print(a.shape)
    print(id(a))
    print(id(b))
    —(3, 4)
    117452112
    117452112

  2. 视图方法创建一个新的数组对象,该数组对象查看相同的数据(view是浅复制),浅复制不会复制a的地址到c,
    改变c的值不会影响到a,改变c的值不会影响到a
    c = a.view()
    c is a
    c.shape = 2,6
    print(a.shape)
    c[0,4] = 1234
    print(a)
    —(3, 4)
    [[ 0 1 2 3]
    [1234 5 6 7]
    [ 8 9 10 11]]

  3. copy也是属于浅拷贝
    d = a.copy()
    d is a
    d[0,0] = 9999
    print(d)
    print(a)
    —[[9999 1 2 3]
    [1234 5 6 7]
    [ 8 9 10 11]]
    [[ 0 1 2 3]
    [1234 5 6 7]
    [ 8 9 10 11]]

  4. argmax 索引最大值的位置,data.argmax(axis=0) axis=0意思是指定列去索引 找出最大值返回索引值的位置
    import numpy as np
    data = np.sin(np.arange(20)).reshape(5,4)
    print(data)
    ind = data.argmax(axis=0)
    print(ind)
    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 ]

  5. tile 对当前的行和列进行扩展(矩阵由原来的一维扩展到了三行五列)
    a = np.arange(0, 40, 10)
    b = np.tile(a, (3, 5))
    print(b)
    —[[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]
    [ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]
    [ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]]

  6. tile扩展
    a = np.arange(0, 40, 10)
    print(a)
    b = np.tile(a, (1, 4))
    print(b)
    —[ 0 10 20 30]
    [[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]]

  7. sort 对当前的数组按照行的维度进行排序(因为axis=1),argsort 是对值的索引进行排序 默认是值从小到大 然后按照值排序获取索引,输出索引
    a = np.array([[4, 3, 5], [1, 2, 1]])
    print(a)
    b = np.sort(a, axis=1)
    print(b)
    a.sort(axis=1)
    print(a)
    a = np.array([4, 3, 1, 2])
    j = np.argsort(a)
    print(j)
    print(a[j])

—[[4 3 5]
[1 2 1]]
[[3 4 5]
[1 1 2]]
[[3 4 5]
[1 1 2]]
[2 3 1 0] #按索引序号排列,输出索引
[1 2 3 4] #输出索引对应的数据

day4--numpy相关推荐

  1. python三维数组切片_【NumPy学习指南】day4 多维数组的切片和索引

    ndarray支持在多维数组上的切片操作.为了方便起见,我们可以用一个省略号(...)来 表示遍历剩下的维度. (1)举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组: ...

  2. python 数据分析day4 Pandas 之 DataFrame

    DataFrame 一. 创建DataFrame 1. 二维数组创建 2. 字典创建 3. JSON创建 4. 读取Excel或CSV文件创建 5. 读数据库(MySQL)创建 二. 常用属性 三. ...

  3. Day4 Hailstone

    Day4 Hailstone 希尔顿序列(Hailstone Sequence) Collatz 猜想 强悍的27 算法目录 希尔顿序列(Hailstone Sequence) 希尔顿序列(Hails ...

  4. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)

    首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...

  5. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  6. Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值

    1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...

  7. dataframe,python,numpy 问题索引2

    20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...

  8. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  9. 数组的拼接合并 numpy

    Python中numpy数组的合并有很多方法,如 np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() ...

  10. view(*args)改变张量的大小和形状_pytorch reshape numpy

    20201227 这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍: a:数组–需要处理的数据 newshape:新的格式–整数或整数数组,如(2,3)表示2行3列,新的 ...

最新文章

  1. thymleaf用法例子
  2. python爬虫,生成文件速度追不上已经爬取文件的生成速度。
  3. 区块链将重新定义世界
  4. java 小坑_关于Java子父类关系的小坑
  5. 迁移学习 简而言之_简而言之Java.io:22个案例研究
  6. ZZULIOJ 1097: 计算平均成绩(函数专题)
  7. 从“三只小猪”的故事到“高性能”测试自动化
  8. 在Vue项目中引入echarts图表的方法(引入cdn)
  9. Git(6):使用git命令将本地项目提交至远程仓库
  10. 如何用C++制作游戏开发概述
  11. PHP 中移除微信emoji表情
  12. 阅读札记:创新与思维范式
  13. 音频系统POP音的原理和解决方法
  14. kali下如何生成密码字典(在线)
  15. 自己制作一个html网页链接,怎么制作自己的网页链接,学生个人网页制作方法...
  16. 检索的原理和方法步骤
  17. (七)CMake变量及其设置
  18. IBM PVM Study之--IBM PVM技术概述
  19. 为什么团建这么招人恨
  20. 胡昌泽day5_循环语句

热门文章

  1. ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
  2. (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
  3. php diff 文本比较,php文本操作方法集合比较
  4. flink globalwindow_《从0到1学习Flink》—— 介绍Flink中的Stream Windows
  5. python牛顿法与拟牛顿法_python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】...
  6. codesys编程_明晚20:00,CODESYS教您制作可编程控制器
  7. mysql 周 获取日期_MySQL获取日期周、月、天,生成序号
  8. 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
  9. 线性表_循环链表(增减删查 + 约瑟夫环问题 代码实现 )
  10. pcl对点云进行直通滤波