>>> import numpy as np
>>> a = np.random.randint(10,size=(5,5))
>>> a
array([[0, 8, 3, 0, 2],
[0, 6, 6, 6, 3],
[0, 3, 6, 8, 7],
[2, 6, 1, 4, 4],
[4, 1, 5, 6, 4]])

1. 数组切片

随机生成5x5的一个矩阵

提取矩阵第n列

>>> a[:,3]
array([0, 6, 8, 4, 6])

提取矩阵第n行

>>> a[3,:]
array([2, 6, 1, 4, 4])

提取矩阵第n行到第n+m行

>>> a[1:4]
array([[0, 6, 6, 6, 3],
[0, 3, 6, 8, 7],
[2, 6, 1, 4, 4]])

提取矩阵第n行到第n+m列

>>> a[:,1:4]
array([[8, 3, 0],
[6, 6, 6],
[3, 6, 8],
[6, 1, 4],
[1, 5, 6]])

使用布尔数组选取数据集中大于4的数字

>>> a[a>4]
array([8, 6, 6, 6, 6, 8, 7, 6, 5, 6])

使用布尔数组选取数据集中第二列大于3的数字所在的行

>>> a[a[:,1]>3]
array([[0, 8, 3, 0, 2],
[0, 6, 6, 6, 3],
[2, 6, 1, 4, 4]])

使用布尔数组选取数据集中第二列等于3的数字所在的行

>>> a[a[:,1]==6]
array([[0, 6, 6, 6, 3],
[2, 6, 1, 4, 4]])

使用布尔数组设置值,把数组a中小于4的值都设置为0

>>> a[a<4]=0
>>> a
array([[0, 8, 0, 0, 0],
[0, 6, 6, 6, 0],
[0, 0, 6, 8, 7],
[0, 6, 0, 4, 4],
[4, 0, 5, 6, 4]])

使用一维布尔数组设置整行或列:把第一列中含有数字6的行,全部设置为7

>>> a[a[:,1]==6]=7
>>> a
array([[0, 8, 3, 0, 2],
[7, 7, 7, 7, 7],
[0, 3, 6, 8, 7],
[7, 7, 7, 7, 7],
[4, 1, 5, 6, 4]])

取特定顺序行的数组,通过传递一个列表或整形ndarray来指定想要的顺序

>>> a[[1,3,4]]
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7],
[4, 1, 5, 6, 4]])

2.数组索引

返回array中数字6的索引值

>>> np.where(a==6)
(array([1, 1, 1, 2, 3, 4]), array([1, 2, 3, 2, 1, 3]))

返回的是一个tuple,第一个代表的是按列查找的索引值,第二个代表的是按行查找的索引值

类似的

>>> np.argwhere(a==6)
array([[1, 1],
[1, 2],
[1, 3],
[2, 2],
[3, 1],
[4, 3]])

返回的是一个array

3.类型转换

类型转换

>>> a.astype(np.float)
array([[0., 8., 3., 0., 2.],
[0., 6., 6., 6., 3.],
[0., 3., 6., 8., 7.],
[2., 6., 1., 4., 4.],
[4., 1., 5., 6., 4.]])
>>> a.astype(np.str)
array([['0', '8', '3', '0', '2'],
['0', '6', '6', '6', '3'],
['0', '3', '6', '8', '7'],
['2', '6', '1', '4', '4'],
['4', '1', '5', '6', '4']], dtype='<U21')

数组和纯量之间的操作

>>> a*a
array([[ 0, 64, 9, 0, 4],
[ 0, 36, 36, 36, 9],
[ 0, 9, 36, 64, 49],
[ 4, 36, 1, 16, 16],
[16, 1, 25, 36, 16]])
>>> a-a
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])

纯量的算术操就是把操作值作用于每一个元素

>>> a-3
array([[-3, 5, 0, -3, -1],
[-3, 3, 3, 3, 0],
[-3, 0, 3, 5, 4],
[-1, 3, -2, 1, 1],
[ 1, -2, 2, 3, 1]])
>>> a*3
array([[ 0, 24, 9, 0, 6],
[ 0, 18, 18, 18, 9],
[ 0, 9, 18, 24, 21],
[ 6, 18, 3, 12, 12],
[12, 3, 15, 18, 12]])

Numpy 对于矩阵的操作持续更新的更多相关文章

  1. NumPy速查笔记(持续更新中)

    目录 1 总览 2 ndarray 3 常用API 3.1 创建ndarray (1)将Python类似数组的对象转化成Numpy数组 (2)numpy内置的数组创建 (3)从磁盘中读取标准格式或者自 ...

  2. MySQL日常运维操作---持续更新

    1.查看当前连接数: 这些参数都是什么意思呢? Threads_cached ##mysql管理的线程池中还有多少可以被复用的资源 Threads_connected ##打开的连接数 Threads ...

  3. js 常用操作 -- 持续更新

    替换数组中某一元素: array.splice(2, 1, '哈哈'); // 2 表示指定数组中2下标元素,1表示要删除的项数,哈哈 是替换后的值 在数组中某元素之前增加元素: array.spli ...

  4. jgGrid常用操作--持续更新

    最近有使用到jqGrid框架,有个需求是单击某个字段,比如name,然后把id带过去执行一个function,网上有说用线获取选中行,然后再得到id的方法,此方法经实验,必须要先选中才行,在用户没有进 ...

  5. Swift字符串操作-持续更新-2022

    Swift字符串追加 var str = "OC" str.append(" Swfit") print(str) // 输出结果: OC Swift 输出结果 ...

  6. 【oracle笔记1】基础知识大集锦:增删改,数据类型,用户操作,持续更新中···

    什么是数据库?数据库就是用来存储和管理数据的仓库.首先我来简单介绍一下各数据库的背景,常见的数据库如下,oracle:甲骨文公司(市场占用率最高),oracle也是一个公司名,翻译过来就是甲骨文的意思 ...

  7. 前端深入之js篇丨Array数组操作从入门到成神Up Up Up,持续更新中

    写在前面 随着前端深入的不断学习,发现数组这个数据结构在前端中有着相当大的存在感,由于我初学前端的时候并没有系统性的学习数组,所以我将通过这篇文章同你一起学习数组,希望我们能一起进步,学会熟练操作数组 ...

  8. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  9. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

随机推荐

  1. [C语言学习笔记五]复合语句和操作符的区分

    复合语句的概念和用法 在部分时候,语句必须要与其他语句相结合才能实现应有的功能.放在花括号 {} 里的代码叫做复合语句. 例如: int a,b; if (a == b) ... ... /* 这一部 ...

  2. 1079 Total Sales of Supply Chain ——PAT甲级真题

    1079 Total Sales of Supply Chain A supply chain is a network of retailers(零售商), distributors(经销商), a ...

  3. frame 和 iframe

    1.frame不能脱离frameSet单独使用,iframe可以: 2.frame不能放在body中:如下可以正常显示: <!--<body>--> <frameset ...

  4. RabbitMQ(二) Java使用RabbitMQ

    2-1 RabbitMQ 生产者消息发送 创建 Maven 项目 Send 加入依赖 <dependency> <groupId>com.rabbitmq</groupI ...

  5. HDFS 03 - 你能说说 HDFS 的写入和读取过程吗?

    目录 1 - HDFS 文件的写入 1.1 写入过程 1.2 写入异常时的处理 1.3 写入的一致性 2 - HDFS 文件的读取 2.1 读取过程 2.2 读取异常时的处理 版权声明 1 - HDF ...

  6. 女朋友看了会生气的回答 URI和URL有什么区别?

    URL是什么 URL 代表着是统一资源定位符(Uniform Resource Locator).作用是为了告诉使用者 某个资源在 Web 上的地址.这个资源可以是一个 HTML 页面,一个 CSS ...

  7. docker在vulhub中的使用命令合集

          (1)docker  ps(查询 docker 进程的所有容器) (2)docker  info(查看docker详细信息) (3)service docker start(启动docke ...

  8. weblogic弱口令+后台getshell

     https://www.cnblogs.com/bmjoker/p/9822886.html利用docker环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏 ...

  9. HTB系列之七:Bastard

    出品|MS08067实验室(www.ms08067.com) 这次挑战的是 HTB 的第7台靶机:Bastard 技能收获: PHP Unserilaize CMS Version Identify ...

  10. Distributed Cache(分布式缓存)-SqlServer

    分布式缓存是由多个应用服务器共享的缓存,通常作为外部服务存储在单个应用服务器上,常用的有SqlServer,Redis,NCache. 分布式缓存可以提高ASP.NET Core应用程序的性能和可伸缩 ...