Numpy

numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算。这个库的前身是1995年就开始开发的一个用于数组运算的库。经过了长时间的发展,基本上成了绝大部分Python科学计算的基础包,当然也包括所有提供Python接口的深度学习框架。

numpy在Linux下的安装已经在5.1.2中作为例子讲过,Windows下也可以通过pip,或者到下面网址下载:

Obtaining NumPy & SciPy libraries

5.3.1 基本类型(array)

array,也就是数组,是numpy中最基础的数据结构,最关键的属性是维度和元素类型,在numpy中,可以非常方便地创建各种不同类型的多维数组,并且执行一些基本基本操作,来看例子:

import numpy as np

a = [1, 2, 3, 4]        #
b = np.array(a) # array([1, 2, 3, 4])
type(b) # <type 'numpy.ndarray'> b.shape # (4,)
b.argmax() #
b.max() #
b.mean() # 2.5 c = [[1, 2], [3, 4]] # 二维列表
d = np.array(c) # 二维numpy数组
d.shape # (2, 2)
d.size #
d.max(axis=0) # 找维度0,也就是最后一个维度上的最大值,array([3, 4])
d.max(axis=1) # 找维度1,也就是倒数第二个维度上的最大值,array([2, 4])
d.mean(axis=0) # 找维度0,也就是第一个维度上的均值,array([ 2., 3.])
d.flatten() # 展开一个numpy数组为1维数组,array([1, 2, 3, 4])
np.ravel(c) # 展开一个可以解析的结构为1维数组,array([1, 2, 3, 4]) # 3x3的浮点型2维数组,并且初始化所有元素值为1
e = np.ones((3, 3), dtype=np.float) # 创建一个一维数组,元素值是把3重复4次,array([3, 3, 3, 3])
f = np.repeat(3, 4) # 2x2x3的无符号8位整型3维数组,并且初始化所有元素值为0
g = np.zeros((2, 2, 3), dtype=np.uint8)
g.shape # (2, 2, 3)
h = g.astype(np.float) # 用另一种类型表示 l = np.arange(10) # 类似range,array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
m = np.linspace(0, 6, 5)# 等差数列,0到6之间5个取值,array([ 0., 1.5, 3., 4.5, 6.]) p = np.array(
[[1, 2, 3, 4],
[5, 6, 7, 8]]
) np.save('p.npy', p) # 保存到文件
q = np.load('p.npy') # 从文件读取

2 在Numpy中,多数函数可以指定数据类型的参数,这个参数是可选的,格式为dtype=类型名,如:

复制代码
1 a=numpy.arrange(5,dtype=int)
2
3 >>>array([0,1,2,3,4])
4
5 a=numpy.arrange(5,dtype=complex)
6
7 ?
1 import numpy as np
2
3 print(np.empty(3))
4
5 print(np.empty((4,1)))

4  数组转置(可以使用transpose()函数,也可以使用T属性访问转置矩阵)

1 nar.transpose()
2
3 nar.T
1 a=numpy.arrange(12).reshape(3,4)
2
3 a
4
5 array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])
#此为第5点

5 Numpy中很多函数统计方法即可以当做数组的实例方法调用,也可以作为顶级的Numpy函数调用

实例使用:

1 r=a.cumsum()
2
3 r
4
5 array([0,1,3,6,10,15,21,28,36,45,55,66])

顶层函数调用:

1 r=numpy.cumsum(a)
2 r
3
4 array([0,1,3,6,10,15,21,28,36,45,55,66])

还有比如排序

a=numpy.random.rand(4)

a.sort()等价于numpy.sort(a)

6 Numpy中的集合运算

a=numpy.array([1,4,2,7,9,0,1,5,7,8])

unique(a):  删除数组中的重复元素,并返回唯一元素的有序结果

intersect1d(a,b):查找a,b中的共同元素,并返回公共元素的有效结果

union1d(a,b):求a,b的并集,并返回有序结果。

in1d(a,b):返回一个布尔型数组,如果a元素包含于b,则返回TRUE,否则返回False

setdiff1d(a,b):求集合a,b的差,即存在于a中但不存在于b中的元素

setxor1d(a,b):求集合a,b的对称差。即存在于a或b但不同时存在于a,b中的元素

7 线性代数

numpy中的linalg模块支持常见的线性代数操作

det :求矩阵行列式

eig:求矩阵特征值和特征向量

inv:求方阵的逆

numpy中的常用线性代数函数

dot:完成矩阵乘法

trace:计算对角线元素的和

8访问文件

(1)将数组以二进制形式存取

save用于保存:numpy.save('d:\\nshz.npy',a) 若没有指定扩展名,则默认为.npy

load用于读取:numpy.load('d:\\nshz.npy')

(2)存取文本文件

savetxt():numpy.savetxt('d:\\npshz.txt',a,delimiter=',')会在D盘下新建文件‘npshz.txt’

loadtxt():numpy.loadtxt('d:\\npshz.txt',delimiter=',')

Numpy的学习的更多相关文章

  1. Numpy基础学习与总结

    Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...

  2. NumPy 数组学习手册·翻译完成

    原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...

  3. Numpy函数学习--genfromtxt函数

    genfromtxt函数 今天学习时遇到了genfromtxt函数 world_alcohol = numpy.genfromtxt("world_alcohol.txt",del ...

  4. numpy.sort()学习记录

    python的功能真的是只有我想不到,没有它做不到 在学系np.sort中学到了一些 print(array2) [14 13 12 11] [10 9 8 7] [ 6 5 4 3] print(n ...

  5. Numpy API学习

    Numpy 常用API学习(全) 一.介绍 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 ...

  6. Python: NumPy, Pandas学习资料

    NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...

  7. numpy pandas 学习

    一. 数组要比列表效率高很多 numpy高效的处理数据,提供数组的支持,python默认没有数组.pandas.scipy.matplotlib都依赖numpy. pandas主要用于数据挖掘,探索, ...

  8. Python 读取UCI iris数据集分析、numpy基础学习

    python基础.numpy使用.io读取数据集.数据处理转换与简单分析.读取UCI iris数据集中鸢尾花的萼片.花瓣长度数据,进行数据清理,去重,排序,并求出和.累积和.均值.标准差.方差.最大值 ...

  9. Numpy基础学习

    Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包. 主要的功能: 1.ndarray,一个具有矢量运算和复杂广播工能的快速且节省空间的多维数组 2.用于对整组数据 ...

随机推荐

  1. 25 ,CSS 构造表格

    1. 表格的基础构造 2. 边距和边线应用 3. 隐藏和删除应用 1.  简单表格 table { width:auto; border-collapse:collapse; margin-left: ...

  2. 基于python的种子搜索网站,你懂得!

    该项目是基于python的web类库django开发的一套web网站,给师弟做的毕业设计.本人的研究方向是一项关于搜索的研究项目.在该项目中,笔者开发了一个简单版的搜索网站,实现了对数据库数据的检索和 ...

  3. Python使用Plotly绘图工具,绘制甘特图

    今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...

  4. node配置微信小程序解密消息以及推送消息

    上一篇文章介绍过 微信小程序配置消息推送,没有看过的可以先去查看一下,这里就直接去把那个客服消息接口去解密那个消息了. 在这里我选择的还是json格式的加密. 也就是给小程序客服消息发送的消息都会被微 ...

  5. DVWA 黑客攻防演练(十一) 存储型 XSS 攻击 Stored Cross Site Scripting

    上一篇文章会介绍了反射型 XSS 攻击.本文主要是通过 dvwa 介绍存储型 XSS 攻击.存储型 XSS 攻击影响范围极大.比如是微博.贴吧之类的,若有注入漏洞,再假如攻击者能用上一篇文章类似的代码 ...

  6. Ngnix负载均衡安装及配置

    1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5 ...

  7. U盘制作启动盘

    https://jingyan.baidu.com/article/15622f24322f52fdfcbea58b.html UltraISO v9.65.3237 官方版及注册码 保存为uikey ...

  8. windows10远程桌面连接身份验证错误:函数不受支持,这可能是由于 CredSSP 加密 Oracle 修正

    前言:因windows10的更新,最近很多朋友会遇到mstsc远程连接桌面报错: windows10企业版解决方式: 按“win+R”,运行 gpedit.msc, 找:“计算机配置”->“管理 ...

  9. WinForm -- 为TextBox文本框添加鼠标右键菜单

    WinForm -- 为TextBox文本框添加鼠标右键菜单 1. 新建一个WinForm项目,放置一个TextBox控件 2. 从工具箱拖进来一个ContextMenuStrip 3. 将TextB ...

  10. Web前端教程3-JavaScript教程

    目录 1. JavaScript介绍 1.1. JS嵌入页面的方式 2. JS基本语法 2.1. 变量类型 2.2. 获取元素方法 2.3. 操作元素属性 2.4. innerHTML的使用 3. J ...