4-Numpy似双丝网,中有千千结(上)

迄今为止,大家已经学习了Python中一些常用的数据结构,如字符串、元祖、列表、字典……群主以温水煮青蛙的耐心慢慢引领着大家,终于来到了Numpy这个水深火热的沸水区!To jump or not to jump?皮糙肉厚的群主已经为大家试过水温,经验表明,不脱一层皮是爬不出来的……

Numpy是Python的一个科学计算库,提供了矩阵运算的功能。Numpy中的ndarray(多维数组)数据结构可用来表示向量(1-dimension)和矩阵(N-dimension)。和Numpy中的Array比起来,List这种小白的数据结构可以说是Too simple, sometimes naive。先放一张图给大家感受一下群主最津津乐道的数组切片操作,看懂这些,保证你整个人都升华了!(可参考《跟老齐学Python轻松入门》P56~P58了解列表的索引和切片用法)

虽然装完逼就跑的感觉很刺激,但本着不离不弃的原则,群主依然会耐心带领大家,一步一个脚印走过这片暗流涌动的沼泽地。既然大家对Numpy的Array已有了感性认识,下面从最简单的开始,安抚大家受到惊吓的小心灵:)

01

Numpy arrays基本操作

  • 元素索引

一维数组的元素访问方式和列表的元素访问语法一样:

  • 数组和列表的区别

最重要的区别是:数组是“同质的”,即所有元素必须为同一类型,而列表中的元素可以为任意不同类型,例如可以把上面列表中最后一个元素改为字符串型,而贸然改变数组中元素类型则会报错!

  • 数组的属性

数组中元素类型的信息包含在dtype属性里。

一旦数组被创建,它的dtype就固定了,只能增加相同类型的元素。此例中dtype是整数,如果我们存储一个浮点数它将被自动转换成整数:

  • 创建数组

上面我们用一个列表来初始化数组,此外还有很多其他创建数组的方式。现实中常需用常量来初始化数组,例如0或1(分别作为加法或乘法运算的初始值),Numpy的zeros和ones函数即为了解决这一需求。

也可以先初始化为空值,再填充具体值。

  • 定义序列

Numpy提供arange函数,和Python内置的range函数类似,但返回的是数组而不是列表。

linspace和logspace函数创建线性和对数空间的坐标序列,需指定将要创建的点数,以及区间的左右端点。

  • 随机数组

创建遵从特定分布规律的随机数构成的数组也很有用。np.random模块中有很多函数能实现这类需求。

  • 用布尔数组做索引

和Python中列表类似,上面我们都是用单个数字做索引或切片来访问数组中的特定元素。此外,数组还支持另一种更加强大的索引方式:用布尔值数组来做索引。这种索引方式在需要提取出满足特定条件的数组元素时非常有用。

例如,我们想把数组norm10中所有大于9的元素都替换为0,首先需要找到判断是否满足条件的布尔值数组(mask)。

有了mask,我们就可以用它来读取数组中满足条件(对应布尔值为True)的元素,并把这些元素置为0。

下周介绍多维数组的切片、数学运算以及线性代数运算,敬请期待!

时间: 2024-10-07 02:00:02

4-Numpy似双丝网,中有千千结(上)的相关文章

5-Numpy似双丝网,中有千千结(下)

"横看成岭侧成峰,远近高低各不同.Numpy渐欲迷人眼,浅草刚能没马蹄."古人为了描述Numpy中Array的变幻莫测和难以掌控,曾留下千古名句,为后世传颂.阅读理解题:本诗前两句描述的是Array中的哪种操作?答案:切片.(看完男默女泪--气氛渐渐凝固 ( ̄▽ ̄") 不扯没用的了,下面我们来学习一些硬知识.有了上篇做铺垫,相信下篇学起来一定会如鱼得水,酣畅淋漓,欲罢不能! 02 多维数组 上篇提到的例子都是一维数组,其实Numpy可以创建任意维度的数组,所有之前提到的方法也

双网卡同时上内外网

查看路由表命令route print 第一步:删除默认路由 route delete 0.0.0.0 注:删除所有0.0.0.0的路由,这个是默认访问外网的路由 第二步:添加静态路由 (假设内网网段为192.168.10.x,网关为192.168.10.1: 外网网段为192.168.20.x,网关为192.168.20.1) 先配置内网静态路由: route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 -p 注:它表示访问192.168.1

有关双网卡同时上内外网的一点想法

因为工作原因,我是要同时用内外网的,以前是只有笔记本自带网卡,要进内外网就要不停的切换,很麻烦 最近实在忍不住了,又去某宝买了一张网卡前几天到的货,按网上的教程写如下路由表 route delelte 0.0.0.0 route add 172.16.152.0 mask 255.255.0.0 172.16.63.50 -p route add 0.0.0.0 mask 255.255.255.0 192.168.1.1 -p route add 0.0.0.0 mask 0.0.0.0 19

Windows路由表配置:双网卡同时上内外网

原文来自:http://www.cnblogs.com/lightnear/archive/2013/02/03/2890835.html 一.windows 路由表解释 route print -4 =========================================================================== Interface List 19...78 dd 08 a4 40 f4 ......Bluetooth Device (Personal Ar

numpy中双冒号的作用

1 import numpy as np 2 a = np.array([[1, 2, 3, 1, 3, 5], [4, 5, 6, 2, 4, 3]]) 3 print('a') 4 print(a) 5 print(a[:, 0::2]) 6 7 # a 8 # [[1 2 3 1 3 5] 9 # [4 5 6 2 4 3]] 10 # [[1 3 3] 11 # [4 6 4]] 12 13 b = np.array([[1, 2, 3, 1, 3, 5], [4, 5, 6, 2, 4

单网卡、双网卡如何实现同时上内网和外网

大家在日常办公生活中经常会遇到一个问题就是,办公室同时连接了内网和外网,如何能够同时上内网和外网呢?最近给一家单位调试网络,他们有自己的内部网络,同时还有外网.现在的要求是一台电脑要同时上内外网,也就是说用户在不做任何设置的情况下能自由的进行内网和外网的切换. 这样的情况里在企业里遇到的很多,对于专门搞网络的技术人员来说是小菜一碟,可是对于一般的企业网管却是个头疼的问题. 在教大家怎么设置同时上内外网之前,首先要搞清楚你们公司网络的具体情况.为了更直观的说明问题,我们分别举两个典型的实例来说明问

勇立“双创”潮头 天搜集团为创业者强势赋能

在义乌,平均每天诞生200多名老板:在温州,大概平均每12人中就有1人是老板:在杭州,创业热度一度赶超北京--在"大众创业.万众创新"的浪潮下,浙江省成为了中国创业创新最为活跃的区域之一.在无数有志青年在创业创新路上前赴后继之际,坐落于杭州市钱塘江畔的浙江天搜科技股份有限公司(以下简称:天搜集团),不仅自己勇立于"双创"潮头,更全方位扶持.服务新时代的青年创业者,不断为社会创业创新发展赋能. 浙江 "双创"排头兵,十三年砥砺前行 世界经济发展大势

NumPy基础(一)

安装自行解决 ##为什么使用NumPy 文件 vectorSumCompare.py #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'teng' import sys from datetime import datetime import numpy as np def numpysum(n):     a = np.arange(n)**2     b = np.arange(n)**3     c = a+b     r

一线开发者在Reddit上讨论深度学习框架:PyTorch和TensorFlow到底哪个更好?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 PyTorch   近日,Reddit用户 cjmcmurtrie 发了一个主题为「PyTorch vs. TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势. 原帖地址:https://redd.it/5w3q74 帖子一楼写道: 我还没有从 Torch7 迁移到 TensorFlow.我玩过 TensorFlow,但我发现 Torch7 更加直观(也许是我玩得不够?).我也尝试了