python运算学习之Numpy ------ 数组的切片索引与循环遍历、条件和布尔数组、形状变化...
数组的切片索引:
数组的切片索引和列表非常类似,下面用代码简单说明
1 a = np.random.rand(16).reshape(4, 4) 2 print("数组a:\n", a) 3 print(a[-1][1:4]) 4 Out[1]: 5 数组a: 6 [[0.04175379 0.43013992 0.5398909 0.40638248] 7 [0.3305902 0.11958799 0.48680358 0.30755734] 8 [0.00893887 0.3848716 0.21018253 0.88170218] 9 [0.80198391 0.4922656 0.67535542 0.64647139]] 10 [0.4922656 0.67535542 0.64647139] |
由于和列表类似,且要符号多维数组的特征,所以这里不过多阐述。有需要参考列表的相关知识。
数组的循环遍历:
1 a = np.random.rand(9).reshape(3, 3) 2 print("数组a:\n", a) 3 for row in a: 4 print(row) # 一行一行的输出 5 for item in a.flat: 6 print(item) 7 # 通用的循环函数 8 for_test = np.apply_along_axis(np.mean, axis=0, arr=a) # apply_along_axis(func1d, axis, arr, *args, **kwargs) 9 print("np.apply_along_axis的调试:\n", for_test) # axis=0为按列,axis=1为按行 10 Out[2]: 11 数组a: 12 [[0.97420758 0.20766438 0.52942127] 13 [0.82673775 0.44288163 0.41729451] 14 [0.1373707 0.68103565 0.92256133]] 15 [0.97420758 0.20766438 0.52942127] 16 [0.82673775 0.44288163 0.41729451] 17 [0.1373707 0.68103565 0.92256133] 18 0.9742075804081937 19 0.20766438289931244 20 0.5294212665874829 21 0.8267377457345865 22 0.44288163199889663 23 0.4172945079908593 24 0.13737070280419617 25 0.6810356459375222 26 0.922561331228303 27 np.apply_along_axis的调试: 28 [0.64610534 0.44386055 0.62309237] |
np.apply_along_axis()方法在我们对矩阵按行按列操作的时候最好用它。注意,第一个参数是方法,方法可以是自己对矩阵每个元素操作的函数方法。
条件和布尔数组:
1 a = np.random.rand(9).reshape(3, 3) 2 print(a < 0.5) # 输出布尔数组 3 print(a[a < 0.5]) # 输出true对应的元素 4 Out[3]: 5 [[ True False True] 6 [False True False] 7 [False True False]] 8 [0.19353844 0.03944841 0.38137674 0.3069755 ] |
数组 形状变化:
1 a = np.random.rand(9).reshape(3, 3) 2 a = a.ravel() # 此时的a是一个新数组 3 print(a) # 将数组平铺成一维数组 4 a.shape = (3, 3) # 你也可以用reshape 5 print(a) 6 Out[4]: 7 [0.83017305 0.11660585 0.83060752 0.221212 0.35489551 0.74925696 8 0.61087204 0.85969402 0.90966368] 9 [[0.83017305 0.11660585 0.83060752] 10 [0.221212 0.35489551 0.74925696] 11 [0.61087204 0.85969402 0.90966368]] |
注意用A.T表示转置,或者用A.transpose()。
转载于:https://www.cnblogs.com/dan-baishucaizi/p/9388007.html
python运算学习之Numpy ------ 数组的切片索引与循环遍历、条件和布尔数组、形状变化...相关推荐
- python运算学习之Numpy ------ 数组操作:连接数组、拆分数组 、广播机制、结构化数组、文件贮存与读写、np.where、数组去重...
数组的连接: 1 # 连接数组 2 A = np.zeros((3, 4)) 3 B = np.ones_like(A) 4 print(A, "\n-------分割符--------\n ...
- python hstack_Python学习之Numpy速成记——基础篇(中)
上节课我们一起学习了Numpy的基本功能和它的部分基础知识.今天我们一起接着来学习剩下的部分. 5.一维数组的索引和切片 (1)一维数组的切片操作与Python列表的切片操作很相似.例如,我们可以用下 ...
- html页面遍历数组,JavaScript中利用for循环遍历数组
先看一段代码 Document // 一个普通的数组 var arr =[3,5,2,6]; // 普通的for 循环遍历 for(var i = 0 ; i < arr.length; i++ ...
- python 列表索引从1开始_Python从索引开始循环遍历列表
我要在这里进行一下,并猜测你正在尝试创建一个简单的python函数,它循环遍历列表并打印出子列表中的每个元素.这是最简单的方法: def get_sublists(start=0): values = ...
- linux shell 中数组的定义和for循环遍历
linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用.今天突然被问到数组怎么去遍历.平时写shell脚本也经常遍历数组, ...
- 循环数组对象 php,PHP循环遍历stdClass对象的数组
我有一个在MySQL中运行的查询,它返回一个结果作为stdClass对象,如下所示: array(8){ [ 0 ]=>object(stdClass)#36(1){ [ "color ...
- python快速入门 数据输出和基本类型 常用的循环遍历等
print("hello world")var=None print(var) #None if True:var=100print(var) #100 # 关键字 # and = ...
- JQ+ ES6模板字符串 + $.each(数组, function(index, 数组中的对象) {操作程序} 循环遍历添加新html结构标签
(function() {// 1. 准备相关数据var hotData = [{city: "北京", // 城市sales: "25, 179", // 销 ...
- (java)leetcode852 山脉数组的封顶索引(二分查找法找出数组中最大值的下标)(Peak Index in a Mountain Array)
题目描述: 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... ...
最新文章
- “算法不行,干啥都不行!”面试官:面试基本都会考这点!
- 【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
- 使用CDI简化JAX-RS缓存
- layui多文件上传讲解_layui d多文件上传(示例代码)
- Asp.NET MVC 技术参考:http://kb.cnblogs.com/zt/mvc/
- WinAPI之ReleaseSemaphore
- Linux系统管理---RAID磁盘阵列
- uc android快捷键,UC手机浏览器助力Android快速上网
- Maven学习(九)Maven项目SpringCloud微服务工程构建(基于单一案例的逻辑)
- 通过Java实现恩尼格玛密码机
- 2022-2028年中国手机银行行业市场竞争态势及未来前景分析报告
- 今日头条页面图片获取
- sdkman的介绍、安装及使用
- macOS下不支持双面打印功能的惠普打印机如何进行手动双面打印
- 五千字聊一聊接口测试
- 没有处理程序要使用以下任何注释:javax.persistence.PersistenceContext
- 滴水逆向学习笔记 -1-
- 遥感数据处理流程新概念(一) ——RSD的面向任务
- 企业数字化转型最难的是什么?就这两个字
- 策略产品经理如何创造价值