注意:下面函数的含义中尺寸大小指的是数组的属性shape的值

内容概括

  • Numpy简介
  • Numpy库函数讲解
    • Numpy数据类型
    • Numpy的创建
    • numpy创建随机数组
    • Numpy数组的属性函数
    • Numpy更改数组形状
    • Numpy统计函数
    • Numpy算数操作
    • Numpy比较操作
    • Numpy的指数,对数,三角函数
    • Numpy取整,四舍五入
    • Numpy矩阵运算
    • Numpy数组合并
    • Numpy数组分割
    • Numpy其他函数
  • 结尾

Numpy简介

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

学Python的同学应该都知道Numpy库,也知道这个库在机器学习领域是必不可少的库,这里我为大家整理了Numpy库的一些常用的函数,方便大家在使用的时候查找。

Numpy库函数讲解

Numpy数据类型

类型 含义
np.int8 和 np.uint8 整数(-128到127)和 无符号整数(0到255)
np.int16 和 np.uint16 整数(-32768至32767)和 无符号整数(0到65535)
np.int32 和 np.uint32 整数(-2147483648至2147483647)和 无符号整数(0到4294967295)
np.int64 和 np.uint64 整数(-9223372036854775808至9223372036854775807)和 无符号整数(0到18446744073709551615)
np.float16 半精度浮点数(十进制下小数点后精确到后四位)
np.float32 单精度浮点数(十进制下小数点后精确到后8位)
np.float64 双精度浮点数
np.complex64 复数,由两个32位浮点数(实数和虚数组成)表示
np.complex128 复数,由两个64位浮点数(实数和虚数组成)表示
np.bool_ 布尔值,由True和False组成

Numpy的创建

函数 含义
np.array(object, dtype=None,copy=True) odject = []或(),创建一维组。object = [[],[],…] 或((),()…),创建二维数组。dtype可自选数据类型,不写系统会自动判断填写数据类型。copy默认为True
np.asarray(object,dtype=None) 当np.array(copy = False)两函数一样

讲解一下np.array中参数copy的用法,文字描述十分麻烦,还是代码演示吧

import numpy as np
a = [-1,2,2]
a = np.array(a)
c = np.array(a,copy = False)
a[0] = 100
print('当copy=False')
print('c数组')
print(c)
print('a数组')
print(a)
#代码运行结果:
当copy=False
c数组
[100   2   2]
a数组
[100   2   2]
当copy=True
c数组
[-1  2  2]
a数组
[100   2   2]

通过代码结果可以看出copy为True和False的区别,也就明白了np.array与np.asarray的区别

函数 含义
创建等差数列 np.arange([start,]stop, [step],[dtype]) 创建一个从start到stop-1,步长为step的数组,其中start默认为0,step默认为1,stop是必须填写的参数
创建等差数列 np.linspace(start,stop,[num],[endpoint],[dtype ]) 创建一个从start到stop的等差数列,num为此等差数列的个数,默认50,endpoint默认为True代表数列的最后一项包含stop,反之不包含
特殊值数组np.zeros(shape, [dtype],) shape为一个数值,创建一个一维的值为0的数组,shape为元组或列表,创建一个与shape尺寸大小的值为0的数组。
特殊值数组np.ones(shape,[dtype]) shape为一个数值,创建一个一维的值为1的数组,shape为元组或列表,创建一个与shape尺寸大小的值为1的数组
特殊值数组np.eye(n,[m],[k],[dtype]) n为数组的行数。m是输出的列数,默认为n。k默认为0表示的是主对角线为1,其余为0,负数越小表示为1的对角线往主对角线的下方走,正数越大表示为1的对角线往主对角线的上方走。

numpy创建随机数组

函数 含义
np.random.seed(k) 如果使用相同的k 值,则每次生成的随机数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
np.random.random([size]) 在[0,1)区间随机生成数组,szie不填写时只生成一个数据的数组,size可接收列表或元组,随机生成和size尺寸大小相同的数组
np.random.rand(x,x1,x2…) 在[0,1)区间随机生成符合(x,x1,x2…)尺寸大小形状的数组
np.random.randn(x,x1,x2…) 生成符合标准正态分布的(x,x1,x2…)尺寸大小形状的数组
np.random.randint(low, [high], [size], [dtype]) 在[low,high)区间内生成符合size尺寸大小相同的数组,当参数high不填写时生成区间为[0,low)的数组。当shape不填写时只生成一个数据的数组
np.random.choice(a,[size],[replace=True],[p]) a为数字,则从[0,a)中随机抽取数字,a为列表,元组和数组(必须是一维的)中随机抽取数字。size不填写时,只随机产生一个数据,siz为数字,随机产生size个数据组成一维数组,size为列表或元组,则生成与size相同大小尺寸的数组。replace默认为True,表示可以取相同数字,False表示不可以取相同数字。p与a相对应,表示取数组a中每个元素的概率,默认为选取每个元素的概率相同。
numpy.random.normal(loc=0.0, scale=1.0, size=None) loc:浮点型数据,分布的均值(中心)。scale: 浮点型数据,分布的标准差(宽度)。size:整数或者整数组成的元组,如果给定size,生成与size尺寸大小相同的数组。如果size为None(默认值),那么就会返回一个值。

Numpy数组的属性函数

函数 含义
ndim 返回int。表示数组的维度
shape 返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n,m)
size 返回int。表示数组的元素总数,等于数组形状的乘积
dtype 返回type。描述数组中元素的类型
itemsize 返回int。表示数组的每个元素的大小(以字节为单位)
nbytes 返回int。表示数组占用的空间

Numpy更改数组形状

函数 含义
np.reshape(a, newshape,) 或a.reshape(shape) 两函数效果相同,np.reshape的参数newshape只能接收列表和元组,但a.reshape不但可以接收列表和元组,参数的每个元素作为单独的参数传入.变换后的数组的元素个数与原来的元素个数相同,否则报错
np.resize(a,new_shape)或a.reszie() new_shape只能接收列表和元组,a.resize可单个接收,也可接收列表和元组。变换后的数组的元素个数可以与原数组的元素个数不同,np.shape可以进行重复填充,a.resize进行0填充。
np.ravel(a)或a.ravel() 将数组a变为一维数组
a.flatten() 将数组a变为一维数组
np.squeeze(a) 移除元素个数为一的维度
np.transpose(a,axes)或a.transpose() a 为输入的数组。axes为元组 或 列表, 如果指定,它必须是包含[0,1,…,N-1]的排列的元组或列表,其中N是a的轴数,返回数组的第i个轴将与输入的编号为axes [i]的轴相对应。 axes默认为range(a.ndim)[::-1],这将反转轴的顺序。a.transpose功能与np.transpose一样,a.transpose可以接收多个数,元组或列表(这个难以理解,建议使用a.shape来查看使用该函数前后的变化)
np.swapaxes(a, axis1, axis2)或a.swapaxes() 交换axis1和axis2的所代表的两个轴,axis1和axis2都为整数。a.swapaxes也只能接收两个整数。切记这两个函数不能输入两个整数的列表或元组

Numpy统计函数

函数 含义
np.sum(a, axis=None)或a.sum(axis = None) 根据给定轴axis计算数组a相关元素之和,axis整数或元组
np.mean(a, axis=None)或a.mean(axis = None) 根据给定轴axis计算数组a相关元素的期望,axis整数或元组
np.average(a,axis=None,weights=None) 根据给定轴axis计算数组a相关元素的加权平均值
np.std(a, axis=None)或a.std(axis = None) 根据给定轴axis计算数组a相关元素的标准差
np.var(a, axis=None)或a.var(axis = None) 根据给定轴axis计算数组a相关元素的方差
np.min(a,axis=None)或a.min(axis=None) 计算数组a中元素的最大值
np.max(a,axis=None)或a.max(axis=None) 计算数组a中元素的最大值
np.argmin(a,axis=None)或 a.argmin(axis = None) 计算数组a中元素最小值降为一维后的下标
np.argmax(a,axis=None)或 a.argmax(axis = None) 计算数组a中元素最大值降为一维后的下标
np.ptp(a,axis=None)或a.ptp(axis = None) 计算数组a中元素最大值与最小值的差
np.median(a,axis=None)或 a.median(axis = None) 计算数组a中元素的中位数(中值)

Numpy算数操作

函数 含义
x1+x2或np.add(x1,x2) x1与x2相加,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同
x1-x2或np.subtract(x1,x2) x1减x2,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同
-x或np.negative(x) 取x的负数,x可以为数值也可以为数组
x1*x2或 np.multiply(x1,x2) x1x与2相乘,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同
x1/x2或np.divide(x1,x2) x1除以x2,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同,x2为零的时候,值为inf(无限大)
x1//x2或 np.floor_divide(x1,x2) x1整除x2,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同
x1**x2或 np.power(x1,x2) x1的x2次方,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同
x1%x1或 np.mod(x1,x2) x1除以x2的余数,x1与x2可以为数值也可以都为数组,数组的时候其shape的尺寸大小要相同

Numpy比较操作

函数 含义
x1==x2或np.equal(x1,x2) 返回布尔数组
x1!=x2或no.not_equal(x1,x2) 返回布尔数组
x1<x2或np.less(x1,x2) 返回布尔数组
x1<=x2或np.less_equal(x1,x2) 返回布尔数组
x1>x2或np.greater(x1,x2) 返回布尔数组
x1>=x2或 np.greater_equal(x1,x2) 返回布尔数组

Numpy的指数,对数,三角函数

函数 含义
np.exp 计算指数(e^x)
np.log,np.log10,np.log2,np.log1p 求以e为底,以10为低,以2为低,以(1+x)为底的对数
np.sign 将数组中的值标签化,大于0的变成1,等于0的变成0,小于0的变成-1
np.cos,np.sin,np.tan 三角函数
np.arccos,np.arcsin,np.arctan 反三角函数

Numpy取整,四舍五入

函数 含义
np.ceil 朝着无穷大的方向取整,比如5.1会变成6,-6.3会变成-6
np.floor 朝着负无穷大方向取证,比如5.1会变成5,-6.3会变成-7
np.rint(a) 四舍五入取整
np.round(a,decimals=0) 返回四舍五入后的值,decimals为小数点后的位数
np.modf 将整数和小数分隔开来形成两个数组

Numpy矩阵运算

函数 含义
np.dot(a,b) a与b进行数组的行列式相乘
np.linalg.inv(a) 求矩阵a的逆
np.linalg.det(a) 求a的行列式
np.linalg.eig(a) 求a的特征值和特征向量
np.linalg.sval(a) 求a的奇异值分解
np.linalg.norm(a, ord=2, axis=None,) ord=1:求一范数,ord=2:求二范数,ord=np.inf:无穷范数,

Numpy数组合并

函数 含义
np.append(arr, values, axis=None) arr:需要被合并values的数组。values:合并到数组arr中的数组。axis:可选参数,如果axis没有给出,合并后返回值为一维数组。axis被填写,按照axis指定的维度合并(axis填写时arr和values需有相同的shape的尺寸大小)
np.concatenate(arrays, axis=None) array多个数组组成的列表或元组。axis填写后将按照axis指定的维度合并(array中的数组可以是不同的shape的尺寸大小)
np.stack(arrays, axis=0) array多个数组组成的列表或元组。axis填写后将按照axis指定的维度合并(array中的数组需为相同的shape的尺寸大小)
np.hstack(tup) 横向合并,tup多个数组组成的列表或元组。建议使用二维数组,多维数组当shape的尺寸大小不同时有时可以合并,有时不可以。
np.vstack(tup) 竖向合并,tup多个数组组成的列表或元组。

Numpy数组分割

函数 含义
np.split(ary, indices_or_sections, axis=0) ary:要切分的数组。indices_or_sections:如果是一个整数,表示将arry切割为改整数份,如果是一个列表或元组(第一个值不要为0),列表值进行切分。axis:沿着哪个维度进行切向,默认为0,横向切分,1表示竖向切分。
np.hsplit(ary, indices_or_sections) 竖向切分。ary:要切分的数组。indices_or_sections:如果是一个整数,表示将arry切割为改整数份,如果是一个列表或元组(第一个值不要为0),列表值进行切分。
np.vsplit(ary, indices_or_sections) 横向切分。ary:要切分的数组。indices_or_sections:如果是一个整数,表示将arry切割为改整数份,如果是一个列表或元组(第一个值不要为0),列表值进行切分。

Numpy其他函数

函数 含义
np.take(a,indices,axis = None)/a.take() a:要提取的数组。indices;要提取的值的索引的列表。axis=0:抽取相应索引行的数据。axis=1:抽取相应索引列的数据。axis=None:将数组转化为一维数据再进行索引相对应的数据
np.argmax(array, axis=None) /array.argmax(axis=None) array:代表输入数组;axis=0:对array取每一列的最大值的索引,axis=1:对array取每一行的最大值的索引。axis=None:j将array转为一维数据再进行取最大值的索引(axis为1和0所对应的列和行没有写错,它是和别人不同)

结尾

Numpy函数太多了,这里就写了一些比较常用的函数,总结这些函数真是太费时间了,函数的用法我是自己上机实验过,按照自己的理解整理的,内容可能不全,讲解的不够详细。如果你有什么疑惑或不懂的地方,建议亲自实践。以后遇见了更多的函数我会继续补充的。希望大家多多支持。

第二章,python--numpy常用函数详解相关推荐

  1. blankcount函数python,Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...

  2. python字符串常用函数-Python字符串常用函数详解

    字符串相关操作大致总结以下9个部分,包括常用字符集合.大小写转换.判断字符元素类型.字符填充.字符串搜索.字符串替换.字符串添加.字符串修剪以及字符串分割. "字符串相关函数" & ...

  3. Python字符串常用函数详解

    str.index(sub, start=None, end=None) 作用:查看sub是否在字符串中,在的话返回索引,且只返回第一次匹配到的索引:若找不到则报错:可以指定统计的范围,[start, ...

  4. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  5. QT:常用函数详解--常用操作记录(个人笔记)

    QT:常用函数详解(个人笔记) PS:一下内容个人笔记,要求自己看懂,随笔,阅读体验会很差很差! Qt setContentsMargins()函数 函数原型:void QLayout::setCon ...

  6. chatgpt赋能python:Python取ln函数详解:用法及常见问题解答

    Python取ln函数详解:用法及常见问题解答 Python取ln函数是一种非常常用的数学函数,它可以帮助开发者在计算中处理数据的自然指数对数.本篇文章将会介绍Python中取ln函数的基础知识,让您 ...

  7. MySql截取字符串的几个常用函数详解

    MySql截取字符串的几个常用函数详解 MySQL 截取字符的几个常用函数:left(), right(), substring(), substring_index(),mid(), substr( ...

  8. Python内置函数详解——总结篇

      引 言 国庆期间下定决心打算学习Python,于是下载安装了开发环境.然后问题就来了,怎么开始呢?纠结一番,还是从官方帮助文档开始吧.可是全是英文啊,英语渣怎么破?那就边翻译边看边实践着做吧(顺便 ...

  9. numpy随机生成01矩阵_Python数据分析Numpy库常用函数详解,提到循环就该想到的库...

    Python进行数据分析的核心库肯定是Pandas,该库差不多可以解决结构化数据的绝大部分处理需求.在<Python数据分析常用函数及参数详解,可以留着以备不时之需 >一文中也已经对该库的 ...

最新文章

  1. php if 单行,php – 单行if语句或if语句没有大括号坏习惯?
  2. USACO Section1.2 Your Ride Is Here(水题)
  3. Ubuntu 安装 chrome
  4. Java会话技术之 —— cookie与session
  5. Ubuntu 11.10为何值得我们期待?
  6. 遗传算法之:地图着色
  7. Android studio3.5调用Numcpp库方法
  8. 将pdf转换成jpg图片
  9. std::result_of用法
  10. 【论文阅读|浅读】Lemane:Learning Based Proximity Matrix Factorization for Node Embedding
  11. sau交流学习社区-songEagle开发系列:Vue + Vuex + Koa 中使用JWT(JSON Web Token)认证
  12. 一文带你深入理解Redis中的底层数据结构,再也不怕不懂数据类型的底层了
  13. 计算机wps文字基础知识,计算机一级考试WPS基础练习题(含答案)
  14. mysql之类型转换函数
  15. 2019下半年,快手准备赚多少钱?
  16. 【毕业设计】基于单片机的家庭智能监控系统 - 物联网 stm32 嵌入式
  17. 1108. String复读机(20分)
  18. vimeo下载_通过Vimeo的API喜欢,关注列表和上传
  19. 区块链中的Merkle树
  20. Android仿微信,QQ群头像合成

热门文章

  1. C++ string的那些坑,C++ string的功能补充,C++ string的内存本质
  2. 二手车电商需要“贝壳”?
  3. Eclipse中文乱码问题解决方法
  4. springBoot之 Redis 实例
  5. CloudSim核心问题理解
  6. 桂林电子科技大学操作系统课程设计(二)
  7. mysql coreseek_coreseek单索引同时搜索多张mysql表字段
  8. cv::Exception,内存位置错误。
  9. H5 canvas画布 字体图片模糊变清晰
  10. Matlab2020a使用Simulink绘制bode图