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. [architecture]-AMBA AXI AHB APB学习总结
  2. ORB-SLAM2中四叉树管理特征点
  3. 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
  4. asp 取数据 计算_ASP.NET Core 简介
  5. 计算机网络-VRRP
  6. Mysql设置允许外网访问(图文)
  7. GNU C的定义长度为0的数组
  8. 《TCP/IP详解卷1》学习小结(一)------链接层
  9. 跳表 skipList
  10. iec61508最新2020_功能安全IEC61508标准新旧版的对比.pdf
  11. office2016 excel复制粘贴就卡死
  12. 安卓手机怎样安装apk应用
  13. 破解华为电脑管家,多屏协同无法正常启动,提示 硬件解码器工作异常,请重启电脑
  14. 基于朴素贝叶斯的垃圾邮件分类Python实现
  15. 一类能产生无限种可能的随机算法--无限随机算法
  16. 阿里巴巴二重身ABBC Coin虚涨逾100%
  17. Win7 SMTP 服务器代替工具
  18. php不是当前时间,php取得时间与当前时间不一样
  19. [存储]NVMe-4-数据结构
  20. Oracle 查询工具 在WIN7 64位下安装PLSQL

热门文章

  1. java的JVM与垃圾回收机制
  2. micropython入门指南pdf_一文了解MicroPython
  3. linux 完成量源码,Linux内核中等待队列 和完成量
  4. html mysql查询_mysql查询
  5. python字符串的内建函数_python的字符串内建函数
  6. mkdir 创建多级目录_Linux mkdir命令:创建目录(文件夹)
  7. h5手机端浏览器机制_h5浏览器缓存机制
  8. Javascript:结合canvas、a标签根据url下载图片到本地
  9. 一位大牛架构师的经验总结
  10. 基于图像的相机定位/SLAM分类