Python科学计算库Numpy
Python科学计算库Numpy
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
1、简介
Numpy是常用的科学计算库。
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 对象是用于存放同类型元素的多维数组。
使用array函数可以创建ndarray对象。
- numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数说明:
名称 | 描述 |
---|---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
array函数可以将python的数据类型装换为ndarray类型,如列表、字典、元组等。
- >>> import numpy as np
- >>> np.array([0,2,1]) #列表
- array([0, 2, 1])
- >>> np.array([[1, 2], [3, 4]]) #列表
- array([[1, 2],
- [3, 4]])
- >>> np.array({"name":"tom",1:True}) #字典
- array({‘name‘: ‘tom‘, 1: True}, dtype=object)
- >>> np.array((1,3,0)) #元组
- array([1, 3, 0])
ndarray也有一些属性,如shape等。
- >>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #获得一个ndarray
- >>>l
- >>>array([[[1, 2, 3, 4, 5]]])
- >>> l.shape=(5,1) #控制形状
- >>> l
- array([[1],
- [2],
- [3],
- [4],
- [5]])
2、属性
ndarray有许多属性。
ndarray.ndim | 秩,即轴的数量或维度的数量 |
---|---|
ndarray.shape | 数组的维度,对于矩阵,n 行 m 列 |
ndarray.size | 数组元素的总个数,相当于 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 对象的元素类型 |
ndarray.itemsize | ndarray 对象中每个元素的大小,以字节为单位 |
ndarray.flags | ndarray 对象的内存信息 |
ndarray.real | ndarray元素的实部 |
ndarray.imag | ndarray 元素的虚部 |
ndarray.data | 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 |
- >>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #获得一个ndarray
- >>>l
- >>>array([[[1, 2, 3, 4, 5]]])
- >>> l.shape=(5,1) #控制形状
- >>> l
- array([[1],
- [2],
- [3],
- [4],
- [5]])
- >>> l.size #数量
- 5
- >>> l.ndim #秩
- 2
- >>> l.flags #信息
- C_CONTIGUOUS : True
- F_CONTIGUOUS : True
- OWNDATA : False
- WRITEABLE : True
- ALIGNED : True
- WRITEBACKIFCOPY : False
- UPDATEIFCOPY : False
- >>> l[4] #通过索引可以访问
- array([5])
- >>>
3、创建
创建ndarray不仅仅有array函数,还要其他的一些函数。
zeros,empty,ones系列
这部分函数获取的ndarray都是按照特定元素来填充的。
函数主要有这几个参数:
参数 | 描述 |
---|---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | 有”C”和”F”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
- >>> np.zeros([2,3]) #由0组成
- array([[0., 0., 0.],
- [0., 0., 0.]])
- >>> np.empty([3,2]) #随机
- array([[0., 0.],
- [0., 0.],
- [0., 0.]])
- >>> np.ones([3,1]) #全部由一组成
- array([[1.],
- [1.],
- [1.]])
arange函数
这个函数和range关键字功能类似。
- >>> np.arange(1,10,2) #1-10之间、以2为步长
- array([1, 3, 5, 7, 9])
4、函数
numpy提供了许多函数来辅助处理。
如amin、amax、sort等算术函数。
- l=np.array([1,3,9,2,8,4,0,4,2])
- l.shape=(3,3)
- print(l)
- print("min: ",np.amin(l))
- print("max: ",np.amax(l))
- print(" axmin: ",np.min(l,1))
- print(" aymin: ",np.min(l,0))
- [[1 3 9]
- [2 8 4]
- [0 4 2]]
- min: 0
- max: 9
- axmin: [1 2 0]
- aymin: [0 3 2]
5、IO
numpy中的数组存入文件中以npy的后缀名。
通过load和save系列函数进行存入与读取。
- import numpy as np
- a=np.arange(1,100,5)
- np.save("nd",a) #写入nd.npy中
- b=np.load("nd.npy") #从文件中加载处来
- print(b)
Python科学计算库Numpy
原文地址:https://www.cnblogs.com/cgl-dong/p/14142977.html
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理
Python科学计算库Numpy的更多相关文章
- python科学计算库numpy和绘图库PIL的结合,素描图片(原创)
# 导入绘图库 from PIL import Image #导入科学计算库 import numpy as np #封装一个图像处理工具类 class TestNumpy(object): def ...
- [Python学习] python 科学计算库NumPy—矩阵运算
NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...
- Python科学计算库-Numpy
NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...
- Python 科学计算库numpy
Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数 # 多维数组ndarray import numpy as np ar ...
- [Python学习] python 科学计算库NumPy—tile函数
在学习knn分类算法的过程中用到了tile函数,有诸多的不理解,记录下来此函数的用法. 函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 其中A和reps都是ar ...
- Python科学计算库
Python科学计算库 一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成 ...
- 科学计算库Numpy基础&提升(理解+重要函数讲解)
Intro 对于同样的数值计算任务,使用numpy比直接编写python代码实现 优点: 代码更简洁: numpy直接以数组.矩阵为粒度计算并且支持大量的数学函数,而python需要用for循环从底层 ...
- python科学计算库的numpy基础知识,完美抽象多维数组(原创)
#导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...
- python科学计算之numpy
1.np.logspace(start,stop,num): 函数表示的意思是;在(start,stop)间生成等比数列num个 eg: import numpy as np print np.log ...
随机推荐
- 【PYTEST】第三章参数化
知识点: 参数化 1. parametrize() 参数化测试用例 实际工作中,我们不可能就传一组数据,参数化支持多组数据测试,并且每组都会去执行,parametrize(), 第一个参数用逗号开分隔 ...
- js 时间日期与时间戳之间转换
1 1.将时间(2017-08-10)转换时间戳 2 var startTime = '2017-08-10'; 3 var startdate = new Date(Date.parse(start ...
- LeetCode 034 Search for a Range
题目要求:Search for a Range Given a sorted array of integers, find the starting and ending position of a ...
- 浅尝 Elastic Stack (五) Logstash + Beats + Kafka
在 Elasticsearch.Kibana.Beats 安装 中讲到推荐架构: 本文基于 Logstash + Beats 读取 Spring Boot 日志 将其改为上述架构 如果没有安装 Kaf ...
- 初学者值得拥有【Hadoop伪分布式模式安装部署】
目录 1.了解单机模式与伪分布模式有何区别 2.安装好单机模式的Hadoop 3.修改Hadoop配置文件---五个核心配置文件 (1)hadoop-env.sh 1.到hadoop目录中 2.修 ...
- Python正则表达式re模块和os模块实现文件搜索模式匹配
☞ ░ 前往老猿Python博文目录 ░ 因测试需要,需要提供一个可以指定目录搜索符合条件的文件名函数,搜索时可以通过*(星号)匹配0-n个字符,?(问号)匹配任意1个字符,可以指定多个文件类型,每个 ...
- PyQt(Python+Qt)学习随笔:QListWidget的信号简介
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 不含继承信号,QListWidget自身的信号包括如下: currentItemChanged(QL ...
- Scrum 冲刺 第三篇
Scrum 冲刺 第三篇 每日会议照片 昨天已完成工作 队员 昨日完成任务 黄梓浩 继续完成app项目架构搭建 黄清山 完成部分个人界面模块数据库的接口 邓富荣 完成部分后台首页模块数据库的接口 钟俊 ...
- 【科技】位运算(bitset)优化最长公共子序列算法
最长公共子序列(LCS)问题 你有两个字符串 \(A,B\),字符集为 \(\Sigma\),求 \(A, B\) 的最长公共子序列. 简单动态规划 首先有一个广为人知的 dp:\(f_{i,j}\) ...
- CSP-S2020 DP专项训练
前言 \(\text{CPS-S2020}\) 已然临近,而 \(\text{DP}\) 作为联赛中的常考内容,是必不可少的复习要点,现根据教练和个人刷题,整理部分好题如下(其实基本上是直接搬--). ...