Python Numpy,学Python不得不削的矩形计算库

矩阵计算库
numpy库的使用是sklearn库和opencv库的基础,主要用于矩阵的计算。
Numpy 的主要用途是以数组的形式进行数据操作。机器学习中大多数操作都是数学操作,而 Numpy 使这些操作变得简单

1.创建Numpy数组对象
Numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符。
包括 np.bool_ ,np.int32,np.float32等。

ndarray.ndim 秩,即轴的数量或维度的数量
ndarray.shape 数组的维度,对于矩阵,n行m列
ndarray.size 数组元素的总个数,相当于 .shape 中n*m的值
ndarray.dtype ndarray 对象的元素类型

例:

data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
a = np.array(data)    #一维数组,20 个数
a = np.linspace(0,20, 20)    #一维数组,将 0-20 等分为 20 个数字
a = np.arange(20)    #简洁方式
b = a.reshape(4,5) #将一维数组 a 转换为维数(4,5)的数组
c = a.reshape(2,5,2) #将一维数组 a 转换为维数(2,5,2)的数组

2.访问数组
控制遍历顺序

for x in np.nditer(a, order=‘F‘): 列序优先;
for x in np.nditer(a.T, order=‘C‘): 行序优先;

例:

a = np.arange(24) a = a.reshape(3,8)
a[2,3]    #提取数组 a 中行 2 列 3 的数值
a[2,3] = 100 #修改数组 a 行 2 列 3 的数值

a[1:3,3:7] #提取数组 a 中 1~2 行,3~6 列的子数组

**#[[11 12 13 14]**
**# [20 20 21 22]]** 

a[1:3,3:7] = np.zeros((2,4)) #将数组 a 中 1~2 行,3~6 列 的数值置换为 0

**#[[ 0  1  2  3  4  5  6  7]**
**# [ 8  9 10  0  0  0  0 15]**
**# [16 17 18  0  0  0  0 23]]** 

a[[0,1],[0,2]] = -1 #将数组 a 中(0,0),(1,2)两个位置的数值置换为-1

**#[[-1  1  2  3  4  5  6  7]**
**# [ 8  9 -1  0  0  0  0 15]**
**# [16 17 18  0  0  0  0 23]]**

3.对数组进行切片与拼接
Numpy 数组可以像Python列表一样被索引,切片和迭代。
也可以在多维数组上做同样的操作,只需使用逗号分隔即可。
例:

a = np.arange(24)
a.reshape(3,8)
b = np.copy(a)
a[0][0] = 100
c = np.hstack((a,b))    #沿 1 维,将 a,b 拼接成一个新数组
c = np.concatenate ((a,b), axis=1)    #沿 1 维,将 a,b 拼接成一个新数组
#[[100, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7],
#[ 8,  9, -1,  0,  0,  0,  0, 15,  8,  9, 10, 11, 12, 13, 14, 15],
#[16, 17, 18,  0,  0,  0,  0, 23, 16, 17, 18, 19, 20, 21, 22, 23]]

4.对数组元素进行查找
例:

a[1:3,3:7] = np.zeros((2,4))
np.where(a==0)    #获得符合条件的行列位置
#(array([1, 1, 1, 1, 2, 2, 2, 2]), array([3, 4, 5, 6, 3, 4, 5, 6])) #index b[np.where(a==0)]    #数组 b 在对应符合条件 a 位置上的数值
#array([11, 12, 13, 14, 19, 20, 21, 22]) #value
np.where(a == 0, 1, 0) #等于0的位置,输出 1;不等于0位置,输出0
#array([[0, 0, 0, 0, 0, 0, 0, 0],
**# [0, 0, 0, 1, 1, 1, 1, 0],**
**#[0, 0, 0, 1, 1, 1, 1, 0]])**

5.对数组进行数学计算和代数运算
例:

#[[ 0,  1,  2,  3,  4,  5,  6,  7],
#[ 8,  9, 10, 11, 12, 13, 14, 15],
#[16, 17, 18, 19, 20, 21, 22, 23]]
np.sum(b,axis=0)    #列求和
#array([24, 27, 30, 33, 36, 39, 42, 45])
np.sum(b,axis=1)    #行求和
#array([ 28,    92, 156])
np.sum(b)      #求和
#276

完毕!

技术交流群:887934385

原文地址:https://www.cnblogs.com/pypypy/p/12113295.html

时间: 2024-11-08 21:05:04

Python Numpy,学Python不得不削的矩形计算库的相关文章

python简单学------------python函数

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数 函数定义和调用 <1>定义函数 定义函数的格式如下: def 函数名(): 代码 demo: # 定义一个函数,能够完成打印信息的功能 def printInfo(): print '------------------------------------' print ' 人生苦短,我用Python' print '------------------------

python简单学------------python面向对象

面向对象编程介绍 想一想 请用程序描述如下事情: A同学报道登记信息 B同学报道登记信息 C同学报道登记信息 A同学做自我介绍 B同学做自我介绍 C同学做自我介绍 stu_a = { "name":"A", "age":21, "gender":1, "hometown":"河北" } stu_b = { "name":"B", "age

python简单学------------python面向对象(2)

保护对象的属性 如果有一个对象,当需要对其进行修改属性时,有2种方法 对象名.属性名 = 数据 ---->直接修改 对象名.方法名() ---->间接修改 为了更好的保存属性安全,即不能随意修改,一般的处理方式为 将属性定义为私有属性 添加一个可以调用的方法,供调用 class People(object): def __init__(self, name): self.__name = name def getName(self): return self.__name def setNam

第一讲:学Python不得不喝的鸡汤

人生苦短,你用Python 一.为何要学编程 身边很多朋友都在问我各种关于学习编程和程序员的问题,比如:"学编程难不难?"."是不是所有程序员都谢顶?"."你说我适不适合学编程!"."程序员收入挺高吧?"我相信看这个随笔的兄弟要么是想问这些问题,要么是天天被别人问这些问题.我在这里统一回答一下 "学编程难不难?""你说我适不适合学编程!" 友善回答:"还好还好,不算难,一般人都

转行零基础该如何学Python?这些一定要明白!

转行零基础学Python编程开发难度大吗?从哪学起?近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大?今天,小编就来为大家详细解读一下这个问题. 学习Python难吗? 首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得"翻译"成CPU可以执行的机器指令.而不同的编程语言,干同一个活,编

【经验分享】给初学者的建议!零基础转行学Python该怎么学?

Python编程语言由于自身具有的“清晰”.“简略”等特点而受到众多使用Python编程语言的IT从业者喜爱.而且,对于初学者来说,比起其他编程语言,Python 更容易上手.加上很多企业都使用Python编程语言,促进了Python程序员的市场需求量增加. 转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编来为大家详细解读一下这个问题. 首先,我们普及一下编程语言的基础知识.用

【Python】初学编程适合学Python?其有何用?

初学编程适合学Python?其有何用? 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多因素造成了,当然市场需求的重要因素.吴军博士对大数据流行的解释与python流行或许有些默契.数据一直以来都存在,只是在历史条件下,由于计算性能和技术发展的原因,与之匹配的数据处理技术还不是很先进,以至于很多数据被我们舍弃了.同样,python语言简洁流畅等多种优点,也会让第一次接触

学python的第一天

#Python之路,Day1 - Python基础1 转自金角大王 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆

简学Python第一章__进入PY的世界

#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff; height: 55px width:100% -moz-border-radius: 3px; padding: 3px; margin: 10px 0px; font-family: "微软雅黑", "宋体", "黑体", Arial } P