数组的切片索引:

  数组的切片索引和列表非常类似,下面用代码简单说明

 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 ------ 数组的切片索引与循环遍历、条件和布尔数组、形状变化...相关推荐

  1. python运算学习之Numpy ------ 数组操作:连接数组、拆分数组 、广播机制、结构化数组、文件贮存与读写、np.where、数组去重...

    数组的连接: 1 # 连接数组 2 A = np.zeros((3, 4)) 3 B = np.ones_like(A) 4 print(A, "\n-------分割符--------\n ...

  2. python hstack_Python学习之Numpy速成记——基础篇(中)

    上节课我们一起学习了Numpy的基本功能和它的部分基础知识.今天我们一起接着来学习剩下的部分. 5.一维数组的索引和切片 (1)一维数组的切片操作与Python列表的切片操作很相似.例如,我们可以用下 ...

  3. html页面遍历数组,JavaScript中利用for循环遍历数组

    先看一段代码 Document // 一个普通的数组 var arr =[3,5,2,6]; // 普通的for 循环遍历 for(var i = 0 ; i < arr.length; i++ ...

  4. python 列表索引从1开始_Python从索引开始循环遍历列表

    我要在这里进行一下,并猜测你正在尝试创建一个简单的python函数,它循环遍历列表并打印出子列表中的每个元素.这是最简单的方法: def get_sublists(start=0): values = ...

  5. linux shell 中数组的定义和for循环遍历

    linux shell中的语法和普通编程语言 c/c++  java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用.今天突然被问到数组怎么去遍历.平时写shell脚本也经常遍历数组, ...

  6. 循环数组对象 php,PHP循环遍历stdClass对象的数组

    我有一个在MySQL中运行的查询,它返回一个结果作为stdClass对象,如下所示: array(8){ [ 0 ]=>object(stdClass)#36(1){ [ "color ...

  7. python快速入门 数据输出和基本类型 常用的循环遍历等

    print("hello world")var=None print(var) #None if True:var=100print(var) #100 # 关键字 # and = ...

  8. JQ+ ES6模板字符串 + $.each(数组, function(index, 数组中的对象) {操作程序} 循环遍历添加新html结构标签

    (function() {// 1. 准备相关数据var hotData = [{city: "北京", // 城市sales: "25, 179", // 销 ...

  9. (java)leetcode852 山脉数组的封顶索引(二分查找法找出数组中最大值的下标)(Peak Index in a Mountain Array)

    题目描述: 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... ...

最新文章

  1. “算法不行,干啥都不行!”面试官:面试基本都会考这点!
  2. 【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
  3. 使用CDI简化JAX-RS缓存
  4. layui多文件上传讲解_layui d多文件上传(示例代码)
  5. Asp.NET MVC 技术参考:http://kb.cnblogs.com/zt/mvc/
  6. WinAPI之ReleaseSemaphore
  7. Linux系统管理---RAID磁盘阵列
  8. uc android快捷键,UC手机浏览器助力Android快速上网
  9. Maven学习(九)Maven项目SpringCloud微服务工程构建(基于单一案例的逻辑)
  10. 通过Java实现恩尼格玛密码机
  11. 2022-2028年中国手机银行行业市场竞争态势及未来前景分析报告
  12. 今日头条页面图片获取
  13. sdkman的介绍、安装及使用
  14. macOS下不支持双面打印功能的惠普打印机如何进行手动双面打印
  15. 五千字聊一聊接口测试
  16. 没有处理程序要使用以下任何注释:javax.persistence.PersistenceContext
  17. 滴水逆向学习笔记 -1-
  18. 遥感数据处理流程新概念(一) ——RSD的面向任务
  19. 企业数字化转型最难的是什么?就这两个字
  20. 策略产品经理如何创造价值

热门文章

  1. Java线程:线程交互
  2. [转]CocoaPods安装和使用教程
  3. 【css】我的 css 框架——base.css
  4. 【物联网智能网关-03】GPRS模块中文短信收发
  5. 《大话设计模式》6个原则 转帖
  6. 英特尔收购McAfee的10种结局猜测
  7. Java的新项目学成在线笔记-day14(四)
  8. Python库安装相关问题
  9. JsonObject的依赖
  10. django的admin中显示为xxxx object以及元类Meta和__str__的使用