Python手册(Scientific Computing)--numpy

2023-11-20


NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。

NumPy的部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
  • 用于读写硬盘上基于数组的数据集的工具。
  • 线性代数运算、傅里叶变换,以及随机数生成。
  • 用于集成由C、C++、Fortran等语言编写的代码的API。
import numpy as np

NumPy的ndarray

  • ndarray 可以矢量化(vectorization)运算。
  • 不同大小的数组之间的运算叫做广播(broadcasting)。

创建ndarray

arr=np.array(obj,dtype=None)

用法 说明
np.asarray(a, dtype=None 将a转化为数组
np.arange(n) 1:(n-1)
np.arange(start,stop,step) 等差数列
np.linspace(start,end,num=50) 返回等间隔的数字
np.empty(shape, dtype=float)
np.empty_like
没有任何具体值的数组,shape一个表示各维度大小的tuple
np.ones(shape, dtype=None)
np.zeros(shape, dtype=None)
np.ones_like; np.zeros_like
生成全是1或0数组,shape类型为tuple
np.eye(n) n*n单位矩阵,对角线为1,其余为0
np.full(shape, fill_value, dtype=None) 生成全是fill_value数组
np.full_like(a,fill_value, dtype=None) 根据a的形状生成全是ill_value的数组

ndarrary索引和切片

用法 说明
arr[axis0,axis1]
arr[axis0][axis1]
arr[arr < 0] bool索引
arr[indexes_list] 花式索引(总是将数据复制到新数组中) arr[[4, 3, 0, 6]]
arr[start:stop:step,start:stop:step] slice

Python关键字and和or在布尔型数组中无效。要使用&|

ndarrary属性

用法 说明
arr.ndim 维度数量
arr.shape 维度信息tupple
arr.size 元素总个数
arr.dtype numpy的数据类型(详情请查阅)
arr.itermsize 每个元素的大小,以字节为单位
arr.T 转置属性

ndarrary方法

变换数组方法 说明
arr.transpose() 转置方法
arr.reshape(shape)/arr.resize(shape) 修改数组维度
arr.swapaxes(ax1,ax2) 多维数组维度调换
arr.flatten() 降成一维数组
arr.astype(new_type) 修改数组类型
统计方法
arr.sum(axis=None); arr.mean(axis=None)
arr.std(axis=None); arr.var(axis=None)
arr.min(axis=None); arr.max(axis=None)
arr.argmin(axis=None); arr.argmax(axis=None) 返回最大值和最小值的索引
arr.cunsum(); arr.cumprod() 累积和/累积乘积
arr.sort(axis=None) 数组本身排序
线性代数
arr.dot(arr2) 矩阵点积

numpy函数

合并和分裂
where(cond, xarr, yarr) xarr if condition else yarr
concatenate((a1,a2,…),axis=0) 将数组a1,a2,…合并
hstack(tup) 行合并
vstack(tup) 列合并
split(ary, indices_or_sections, axis=0) indices_or_sections : int or 1-D array
hsplit(arr, indices_or_sections) 行分裂hsplit(x, np.array([3, 6]))
vsplit(arr, indices_or_sections) 列分裂
统计
max(a,axis=None); np.min(a,axis=None)
fmax(a,b) 数组元素间取较大值
meshgrid(x,y) 接受两个一维数组,并产生两个二维矩阵,对应于两个数组中所有的(x,y)对
线性代数
dot(arr1, arr2) 矩阵点积
gradient(f) 计算斜率(a[0]+a[1])/2
排序
sort(arr,axis=-1) 返回的是数组的已排序副本
去重
unique(arr,axis=None) 返回数组的唯一值,并排序
重复和堆叠
repeat(a, repeats, axis=None) repeats : int or array of ints
tile(A, reps) 堆叠
数学运算
sum,prod 求和,求积
cumsum,cumprod 累积求和,累积求积
abs 绝对值
sqrt 计算机各元素的平方根
square 计算各元素的平方
exp 计算各元素的e的x次方
log,log10,log2,log1p 分别自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)
sign 计算各元素的正负号:1(正数)、0(零)、-1(负数)
ceil 计算各元素的ceiling值,即大于等于该值的最小正数
floor 计算各元素的floor值,即小于等于该值的最大正数
rint 将各元素值四舍五入到最接近的整数,保留dtype
modf 将数组的小数和整数部分以两个独立数组的形式返回
isnan 返回bool数组
isfinite,isinf 返回bool数组
cos,cosh,sin,sinh,tan,tanh 普通型和双曲型三角函数
arccos,arccosh,arcsin,arcsinh,arctan,arctanh 反三角函数
logical_not 计算各元素notx的真值。相当于-arr
add 将数组中对应的元素想加
subtract 相减
multiply 数组元素对应相乘
divide(arr1,arr2),floor_divide(arr1,arr2) 除法或向下圆整除法(丢弃余数)
power 乘方
mod 取余数
greater(arr1,arr2),greater_equal(arr1,arr2),
less(arr1,arr2),less_equal(arr1,arr2),
equal(arr1,arr2),not_equal(arr1,arr2)
执行元素级的比较运算,最终产生布尔型数组,相当于运算符>,>=,<,<=,==,!=
logical_and,logical_or,logical_xor 逻辑运算&、|、^
ufunc方法** np.ufunc
reduce(a, axis=0, dtype=None, out=None, keepdims=False) 对值进行连续聚合
np.add.reduce(arr)
accumulate(array, axis=0, dtype=None, out=None, keepdims=None) 保留所有局部聚合结果
reduceat(a, indices, axis=0, dtype=None, out=None) 分组约简
outer(A, B, **kwargs) Apply the ufunc op to all pairs (a, b) with a in A and b in B.
ufunc.outer(A,B).ndim=A.ndim+B.ndim
np.frompyfunc(func, nin, nout) nin : input(int), nout : output(int), return: ufunc

NumPy的random随机库(生成n维随机数组)

用法 说明
np.random.rand(d0,d1,…,dn) [0,1]区间均匀分布
np.random.randn(d0,d1,…,dn) 标准正态分布
np.random.randint(low,high,size) [low,high] 随机整数数组
np.random.seed(s) 随机种子数
随机排列
np.random.shuffle(a) 按a第一轴随机排列,改变a
np.random.permutation(a) 按a第一轴随机排列,生成副本
np.random.choice(a,size,replace,p) 以概率p数组a抽样,样本大小为size
随机分布
np.random.uniform(low,high,size) 均匀分布数组
np.random.normal(loc,scale,size) 正态分布数组
np.random.poisson(lam,size) 泊松分布数组
# 示例:随机漫步
nsteps = 1000
draws = np.random.randint(0, 2, size=nsteps)
steps = np.where(draws > 0, 1, -1)
walk = steps.cumsum()
plt.plot(walk[:100])

Numba

Numba是一个开源项目,它可以利用CPUs、GPUs或其它硬件为类似NumPy的数据创建快速函数。它使用了LLVM项目,将Python代码转换为机器代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python手册(Scientific Computing)--numpy 的相关文章

  • MySQL 通配符学习小结

    原文 http blog csdn net ithomer article details 5130386 MySQL 通配符 SQL的模式匹配允许你使用 匹配任何单个字符 而 匹配任意数目字符 包括零个字符 在 MySQL中 SQL的模式
  • 归并排序求逆序对

    一 归并排序原理 归并排序采用分治算法 将对整个数组排序的问题转化为合并两个有序子序列的问题 一 1 思想方法 以上是对数组进行排序的过程 首先 我们可认为 当区间长度为1时 每个区间都是有序的 接着 我们合并这些长度为1的区间 得到了第二
  • 抖音如何变现(赚钱)

    未来 每个人都能出名15分钟 安迪 沃霍尔 美国著名波谱艺术领袖 有必要见一下伟大预言家的风采 预言了短视频的兴起 突如一夜春风来 五洲四海刷抖音 2017 2018抖音突然火起了 从城市到农村 从国内到国外 从老人到小孩 从男人到女人 各
  • 小程序云服务器带宽要求,小程序云服务器带宽要求

    小程序云服务器带宽要求 内容精选 换一换 当您发现云服务器的运行速度变慢或云服务器突然出现网络断开的情况 则可能是云服务器的带宽和CPU利用率过高导致 如果您已经通过云监控服务创建过告警任务 当CPU或带宽利用率高时 系统会自动发送告警给您
  • JSONObject与JSONArray的简单使用

    JSONObject 大家看到JSONObject就应该真的这个类是和Json格式相关的吧 没错 JSONObject就是将数据json化的一个类 它是以键值对存在的 key value形式和map类型比较相像 下面我们先来简单使用一下这个
  • React class组件、react-hook函数组件分别实现五子棋

    react class类组件 react hook函数组件分别实现五子棋 前言 使用create react app脚手架简单搭建 不用安装其他依赖 纯 js css实现 这里就只是简单的说明目录结构和思路 具体的代码实现请转到 Githu
  • 解决:Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:

    报错信息如下 org apache ibatis exceptions PersistenceException Error querying database Cause com mysql jdbc exceptions jdbc4 M
  • 【学习笔记】开源中文对话预训练模型调研总结

    开源中文对话预训练模型调研 文章目录 开源中文对话预训练模型调研 1 CDial GPT 主要工作 LCCC数据集 数据清洗策略 基于规则的清洗 基于分类器的清洗 模型 输入表征 训练 2 GPT2 chitchat 3 EVA1 0 WD
  • 网络安全态势感知和OODA模型

    网络安全已经成为全球范围内的重要问题之一 随着信息化和数字化的发展 各种网络攻击和威胁不断出现 给个人 企业 组织和国家带来了巨大的安全风险和经济损失 为了应对这一挑战 网络安全态势感知和OODA模型成为了网络安全领域中非常重要的工具 一

随机推荐

  • python 安装selenium最方便的方法

    dp MacBook Pro 3 chromedriver mac arm64 apple pip install chromedriver autoinstaller Looking in indexes http pypi tuna t
  • springmvc多视图解析

  • linux 复位usb设备 模拟热插拔脚本

    获取USB设备数量 DEVICE NUM lspci grep USB awk F print 1 wc l 获取设备号 DEVICE lspci grep USB awk F print 0000 1 sed n i p 设备解绑 ech
  • IPsec ISAKMP

    Interne 安全连接和密钥管理协议 ISAKMP 是 IPsec 体系结构中的一种主要协议 该协议结合认证 密钥管理和安全连接等概念来建立政府 商家和因特网上的私有通信所需要的安全 因特网安全联盟和密钥管理协议 ISAKMP 定义了程序
  • 力软-获取jfGrid值,并改变值

    问题 页面中jfGrid为动态加载出来的 在js中动态改变cell值之后 需要将jfGrid的值重新赋值一遍 解决 var rowindex 0 jfgrid layout 0 jfGridGet rowdatas rowindex F R
  • Android 在模拟器上使用Geocoder解析Location报 grpc failed无解

    在做定位功能时 用Geocoder解析Location报了一个错 我把模拟器位置设立在印度孟买 按理说Location正常 经纬度可用 应该没问题 但却给我报出异常 在翻了很多资料后感觉是模拟器的原因 因为我在真机上定位的地方都能解析 而且
  • 小白入门C#初探Web简易页面显示信息小案例

    1 创建新项目 选择ASP NET Core Web应用 模型 视图 控制器 然后点击下一步 然后在项目名称里面填写CSharpDemo 点击下一步 直至创建即可 目录结构 Connected Services 是Visual Studio
  • CentOS 8安装并配置NFS服务

    先决条件 我们假设您有一台运行CentOS 8的服务器 我们将在该服务器上设置NFS服务器和其他充当NFS客户端的计算机 服务器和客户端应该能够通过专用网络相互通信 如果您的托管服务提供商不提供私有IP地址 则可以使用公共IP地址并配置服务
  • Python学习第十二天——logging

    1 日志级别 CRITICAL 50 FATAL CRITICAL ERROR 40 WARNING 30 WARN WARNING INFO 20 DEBUG 10 NOTSET 0 不设置 日志的设置是自下而上的 如果等级为ERROR
  • vs2008常用操作汇总

    1 OpenCV2 1环境配置 1 Tools gt Options gt Projects and Solutions gt VC Drectories Show directories for选择include files 加入目录 D
  • Android-给RecyclerView添加分隔线

    RecyclerView和ListView不同 是不自带分隔线的 如此 在讲为Item加入分割线本质的前 先来介绍 认识一下ChildView 也就是平时我们用到的ListView RecyclerView中的getChildAt int
  • 【解决】Win 10+Visual Studio community 2017,许可证到期,不能登录问题

    Win 10 Visual Studio community 2017 许可证到期 不能登录问题 试了很多种方式 会出现很多问题 最终尝试成功 1 在打开vs之后 第一时间点击帮助 发送反馈 报告问题 2 在弹出的对话框中点击发现新的许可证
  • UCI提供给shell和lua使用的配置接口

    转自 http m blog csdn net article details id 47989493 1 uci提供给shell使用的配置借口有两套 1 config get用来读取一个config值 命令格式如下 config getv
  • 【Python爬虫】Python 爬虫的学习和案例,一篇文章带你了解爬虫的密码

    爬虫基础 我们可以把互联网比作一张大网 而爬虫 即网络爬虫 便是在网上爬行的蜘蛛 把网的节点比作一个个网页 爬虫爬到这就相当于访问了该页面 获取了其信息 可以把节点的连线比作网页与网页之间的链接关系 这样蜘蛛通过一个节点后 可以顺着节点连线
  • Linux系统下载并安装Redis

    Linux上下载并安装Redis 下面是下载安装过程 如果只是想快速安装 那就直接看图中命令 全部下载安装命令都在图中 1 在home目录下下载Redis安装包 下载Redis安装包命令 wget http download redis i
  • html5取消了哪些标签,html5删除的标签有哪些

    html5删除的标签 basefont big center font s strike tt u frame noframes frameset bgsound blink marquee applet isindex listing等
  • 使用函数打印无符号整形的二进制表达式

    目录 目录 目录 1 问题描述 输入两个非负整数a b 并输出这两个整数的二进制形式以及这两个数的反码执行逻辑或和逻辑与操作后的二进制形式 2 三个函数作用的详细解释 2 1第一个函数 2 2第二个函数 2 3第三个函数 3 结语 请多多指
  • 一招解决Tomcat闪退

    tomcat的运行需要JRE 一般启动闪退都是因为找不到JRE 也就是说环境安装JDK时环境变量没有配置好 首先检查JDK配置是否正确 确认JDK配置好了以后开始检查错误 在Tomcat的安装目录下的bin文件夹里面找到startup ba
  • 在Windows11系统中安装Anaconda

    1 在电脑自带的应用商店下载或者去Anaconda官网下载 Anaconda官网 2 打开Anaconda官网 如下图 3 点击Download 选择自己电脑对应的版本 这里选择Windows 4 将下载的Anaconda 放在电脑的某个地
  • Python手册(Scientific Computing)--numpy

    文章目录 NumPy的ndarray 创建ndarray ndarrary索引和切片 ndarrary属性 ndarrary方法 numpy函数 NumPy的random随机库 生成n维随机数组 Numba NumPy Numerical