目录

一、NumPy 排序、条件刷选函数

二、NumPy 字节交换

三、NumPy 副本和视图

四、NumPy 矩阵库(Matrix)

五、NumPy 线性代数

六、NumPy IO

七、NumPy Matplotlib


一、NumPy 排序、条件刷选函数

numpy.argsort() 函数返回的是数组值从小到大的索引值。

numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。这里举一个应用场景:小升初考试,重点班录取学生按照总成绩录取。在总成绩相同时,数学成绩高的优先录取,在总成绩和数学成绩都相同时,按照英语成绩录取…… 这里,总成绩排在电子表格的最后一列,数学成绩在倒数第二列,英语成绩在倒数第三列。

numpy.argmax()numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。

numpy.nonzero() 函数返回输入数组中非零元素的索引。

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。

import numpy as np x = np.arange(9.).reshape(3,  3)
print ('我们的数组是:')
print (x)
# 定义条件, 选择偶数元素
condition = np.mod(x,2)  ==  0
print ('按元素的条件值:')
print (condition)
print ('使用条件提取元素:')
print (np.extract(condition, x))

二、NumPy 字节交换

三、NumPy 副本和视图

副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不在同一位置。

视图是数据的一个别称或引用,通过该别称或引用亦便可访问、操作原有数据,但原有数据不会产生拷贝。如果我们对视图进行修改,它会影响到原始数据,物理内存在同一位置。

视图一般发生在:

  • 1、numpy 的切片操作返回原数据的视图。
  • 2、调用 ndarray 的 view() 函数产生一个视图。

副本一般发生在:

  • Python 序列的切片操作,调用deepCopy()函数。
  • 调用 ndarray 的 copy() 函数产生一个副本。

四、NumPy 矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

转置矩阵:NumPy 中除了可以使用 numpy.transpose 函数来对换数组的维度,还可以使用 T 属性。

import numpy as npa = np.arange(12).reshape(3,4)print ('原数组:')
print (a)
print ('\n')print ('转置数组:')
print (a.T)

matlib.empty() 函数返回一个新的矩阵,语法格式为:

import numpy.matlib
import numpy as npprint (np.matlib.empty((2,2)))
# 填充为随机数据

numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。

numpy.matlib.ones()函数创建一个以 1 填充的矩阵。

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零,不一定是方阵。

numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。

numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。

矩阵总是二维的,而 ndarray 是一个 n 维数组。 两个对象都是可互换的。

五、NumPy 线性代数

numpy.matmul和dot不同点:

numpy.dot() 对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称之为内积);对于二维数组,计算的是两个数组的矩阵乘积;对于多维数组,它的通用计算公式如下,即结果数组中的每个元素都是:数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和: dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])。

numpy.matmul 函数返回两个数组的矩阵乘积。 虽然它返回二维数组的正常乘积,但如果任一参数的维数大于2,则将其视为存在于最后两个索引的矩阵的栈,并进行相应广播。另一方面,如果任一参数是一维数组,则通过在其维度上附加 1 来将其提升为矩阵,并在乘法之后被去除。但对于二维数组,它就是矩阵乘法。

六、NumPy IO

七、NumPy Matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

import numpy as np
from matplotlib import pyplot as plt x = np.arange(1,11)
y =  2  * x +  5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()

关于绘图库的更多知识建议单独学习。

Numpy(3/3):进阶知识相关推荐

  1. Android进阶知识:绘制流程(上)

    1.前言 之前写过一篇Android进阶知识:事件分发与滑动冲突,主要研究的是关于Android中View事件分发与响应的流程.关于View除了事件传递流程还有一个很重要的就是View的绘制流程.一个 ...

  2. react只停留在表层?五大知识点带你梳理进阶知识

    五大知识点带你梳理react进阶知识 ✉️前言

  3. webpack入门核心知识还看不过瘾?速来围观万字入门进阶知识

    一文了解webpack入门进阶知识

  4. python的格式化输出学号_安利三个关于Python字符串格式化进阶知识

    点击蓝色"Python空间"关注我丫 加个"星标",每天一起快乐的学习 今 日 鸡 汤 名花倾国两相欢,常得君王带笑看. /前言/ 关于Python字符串格式化 ...

  5. Java工程师进阶知识完全扫盲, 太全了!!

    项目简介 本期介绍的开源项目名称叫做:advanced-java 中文名:互联网 Java 工程师进阶知识完全扫盲,该项目主要是为Java开发工程师提供进阶知识讲解,从而提升Java工程师技术与能力! ...

  6. 【C++进阶知识】C++类的继承和派生

    目录 C++进阶知识系列文章 C++类的继承和派生 基本语法 访问修饰符 构造函数和析构函数 覆盖父类的方法 虚函数和纯虚函数 示例代码 参考资料 C++进阶知识系列文章 C++类的继承和派生 在面向 ...

  7. Android进阶知识(二十五):Bitmap简介及其高效加载

    Android进阶知识(二十五):Bitmap简介及其高效加载 一.Bitmap   Bitmap代表一个位图,在Android中指的是一张图片,可以是png.jpg等格式的图片.BitmapDraw ...

  8. MariaDB/Mysql数据库进阶知识

    这一篇章主要说一下关于MariaDB/Mysql的一些进阶知识,希望可以加深自己的理解 MariaDB的特性 插件式存储引擎:也称为"表类型",存储管理器有多种实现版本,功能和特性 ...

  9. Java数据结构与算法面试题,首发Java程序员人手必备的进阶知识体系,(1)

    在市场上很少能够看到一套不错的学习笔记,小编也是花了挺久的时间总结了这份**<Java程序员人手必备的进阶知识体系>**,帮助大家系统化高效的进阶学习,而不是零散低效的阅读. 2020全新 ...

  10. mysql/mariadb 进阶知识之表设计和查询

    进阶知识之表设计和查询 学生信息.成绩.课程数据表,提取码:iqub 评论及回复数据表,提取码:hdr7 一.表设计之数据类型选择 1.1.表设计步骤 第一步,确定大类型:数字.字符串.日期等级等: ...

最新文章

  1. TF之LiR:基于tensorflow实现手写数字图片识别准确率
  2. PMCAFF微课堂|简书大咖彭小六:6年PM是如何利用阅读进行职场提升
  3. [云炬创业基础笔记] 第四章测试13
  4. PHP连接MSSQL
  5. 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
  6. iOS开发:AFNetworking、MKNetworkKit和ASIHTTPRequest比较
  7. python赋值01_python学习笔记1-赋值与字符串 | 学步园
  8. Vue3 高级语法(二)—— 自定义指令、Teleport、Vue插件
  9. PAIP.java程序调试的注意点及流程总结
  10. Linux安装Vmware Workstation
  11. 极简图床 + 阿里云OSS 做图片外链
  12. 解决日志打印过多问题
  13. android 自动加微信群,如何完美实现微信自动发朋友圈自动添加好友等等
  14. 谈谈自己对教育的理解(K12)
  15. BT面板创建站点显示已存在问题解决
  16. SpringBoot实现动态定时任务
  17. 大学心理学课本_儿童心理学(第六版)/普通高等教育国家级规划教材
  18. 飞机MRO软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. cleave.js_Cleave.js的Vue.js 2.x组件
  20. 变换域信息隐藏--DCT

热门文章

  1. 电脑明明有网络可以上网,但是浏览器网页就是打不开
  2. python生日祝福语_春节生日快乐祝贺词
  3. 元宇宙游戏席卷全球:什么是元宇宙?
  4. ctfhub 技能树pwn 栈溢出 ret2text
  5. 计算机在线使用幻映片,几个计算机大一考试的选择题大家帮帮忙```
  6. 新兴企业软文营销做好这六点快速增强品牌形象
  7. 【观察】看懂微软Ignite China技术大会:左手混合工作,右手混合多云
  8. 使用搜狐接口获取客户端IP地址
  9. JZOJ 4637 大鱼海棠【NOIP2016提高组A组7.16】
  10. 电脑连接蓝牙音响之后只有最大音量和静音,解决办法