python语法简洁吗,python 优雅 明确 简单
【Python】简单而不简单 Numpy小抄表(包括主要语法和代码)值得收藏_qq62985c01d4e12 _博客的技术博客
Numpy是用python实现的科学计算的扩展库,包括:
1.强大的n维数组对象数组;2.成熟(广播)函数库;3.集成C/C和Fortran代码的工具包;4.实用线性代数,傅立叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy一起使用更方便。NumPy(Numeric Python)提供了很多先进的数值编程工具,比如矩阵数据类型、向量处理、复杂的运算库等。它是专门为严格的数字处理而生产的。它被许多大型金融公司,以及劳伦斯利弗莫尔(Lawrence Livermore)等核心科学计算组织使用,NASA用它来处理一些原本用C、Fortran或Matlab完成的任务。
整理了一个Numpy的小抄表,总结了Numpy的常用操作,可以收藏起来慢慢看。
您可以通过Pip或Anaconda安装Numpy:
$ pip安装费或
$ conda安装numpy文章目录
基本占位符数组加减元素,合并数组,拆分数组,改变数组形状,复制/排序数组操作,其他数学计算,数学计算,基本统计的比较,更多切片和子集提示,基本NumPy最常用的函数之一是NumPy数组:列表和NumPy数组的主要区别在于功能和速度。
提供了list的基本操作,但是NumPy增加了FTTs、卷积、快速搜索、基本统计、线性代数、直方图等。
这两种数据科学最重要的区别是NumPy数组可以用于元素级的计算。
轴0通常指行。
轴1通常指列。
操作
形容
文件
np.array([1,2,3])
一维数组
https://numpy . org/doc/stable/reference/generated/numpy . array . html # numpy . array
np.array([(1,2,3),(4,5,6)])
二维数组
https://numpy . org/doc/stable/reference/generated/numpy . array . html # numpy . array
np.arange(开始、停止、步进)
算术数组
https://docs . scipy . org/doc/numpy/reference/generated/numpy . arange . html
占位符操作
形容
文件
np.linspace(0,2,9)
向数组中添加一个算术值。
https://docs . scipy . org/doc/numpy/reference/generated/numpy . linspace . html
np.zeros((1,2))
创建一个全为0的数组。
docs . scipy . org/doc/numpy/reference/generated/numpy . zeros . html
np.ones((1,2))
创建一个全1的数组。
https://docs . scipy . org/doc/numpy/reference/generated/numpy . ones . html # numpy . ones
随机的
创建一个随机数数组。
https://docs . scipy . org/doc/numpy/reference/generated/numpy . random . random . html
np.empty((2,2))
创建一个空数组
https://numpy . org/doc/stable/reference/generated/numpy . empty . html
示例:将numpy作为np导入
# 1维度
x=np.array([1,2,3])
# 2维
y=np.array([(1,2,3),(4,5,6)])
x=np.arange(3)
数组([0,1,2])
y=np.arange(3.0)
数组([ 0。 1. 2.])
x=np.arange(3,7)
数组([3,4,5,6])
y=np.arange(3,7,2)
数组([3,5])
属性数组属性语法
形容
文件
数组.形状
维度(行、列)
https://docs . scipy . org/doc/numpy/reference/generated/numpy . ndarray . shape . html
透镜(阵列)
数组长度
https://docs.python.org/3.5/library/functions.html#len
array.ndim
数组的维数
https://docs . scipy . org/doc/numpy/reference/generated/numpy . ndarray . ndim . html
数组.大小
数组中元素的数量
https://docs . scipy . org/doc/numpy/reference/generated/numpy . ndarray . size . html
数组. dtype
数据类型
https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
array.astype(类型)
转换数组类型
https://docs . scipy . org/doc/numpy/reference/generated/numpy . ndarray . astype . html
类型(数组)
显示阵列类型
https://numpy.org/doc/stable/user/basics.types.html
复制/排序操作
形容
文件
np.copy(数组)
创建数组副本
https://份文件。scipy。组织/单据/金额/参照/生成/金额。收到。超文本标记语言
other=array.copy()
创建数组深拷贝
https://份文件。scipy。组织/单据/金额/参照/生成/金额。收到。超文本标记语言
数组。排序()
排序一个数组
https://份文件。scipy。组织/单据/金额/参照/生成/金额。排序。超文本标记语言
数组.排序(轴=0)
按照指定轴排序一个数组
https://份文件。scipy。组织/单据/金额/参照/生成/金额。排序。超文本标记语言
举例将数组作为铭牌导入
#排序按升序排序
y=np.array([10,9,8,7,6,5,4,3,2,1])
y.sort()
打印(y)
[ 1 2 3 4 5 6 7 8 9 10]数组操作例程增加或减少元素操作
描述
文档
附加(甲、乙)
增加数据项到数组
https://份文件。scipy。组织/单据/金额/参照/生成/金额。追加。超文本标记语言
插入(数组,1,2,轴)
沿着数组0轴或者一轴插入数据项
https://份文件。scipy。组织/单据/金额/参照/生成/金额。插入。超文本标记语言
np.resize((2,4))
将数组调整为形状(2,4)
https://份文件。scipy。组织/单据/金额/参照/生成/金额。调整大小。超文本标记语言
删除(数组,1,轴)
从数组里删除数据项
数字https://。组织/单据/稳定/参照/生成/数量。删除。超文本标记语言
举例将数组作为铭牌导入
#将项目追加到数组
a=np.array([(1,2,3),(4,5,6)])
b=np.append(a,[(7,8,9)])
打印(二)
[1 2 3 4 5 6 7 8 9]
#从前一个数组中删除索引2
print(np.delete(b,2))
[1 2 4 5 6 7 8 9]组合数组操作
描述
文档
np.concatenate((a,b),axis=0)
连接2个数组,添加到末尾
https://份文件。scipy。组织/单据/金额/参照/生成/金额。串联。超文本标记语言
np.vstack((a,b))
按照行堆叠数组
数字https://。组织/单据/稳定/参照/生成/数量。v栈。超文本标记语言
np.hstack((a,b))
按照列堆叠数组
文件。scipy。组织/单据/金额/参照/生成/金额。h栈。html # numpy。h堆栈
举例将数组作为铭牌导入
a=np.array([1,3,5])
b=np.array([2,4,6])
#按行堆叠两个数组
print(np.vstack((a,b)))
[[1 3 5]
[2 4 6]]
#按列堆叠两个数组
print(np.hstack((a,b)))
[1 3 5 2 4 6]分割数组操作
描述
文档
numpy.split()
分割数组
https://份文件。scipy。组织/单据/金额/参照/生成/金额。分裂。超文本标记语言
np.array_split(array,3)
将数组拆分为大小(几乎)相同的子数组
https://份文件。scipy。组织/单据/金额/参照/生成/金额。数组_拆分。html # numpy。数组_拆分
numpy。hs拆分(数组,3)
在第3个索引处水平拆分数组
数字https://。组织/单据/稳定/参照/生成/数量。他分裂了。html # numpy。hs拆分
举例#将数组分成约3组
a=np.array([1,2,3,4,5,6,7,8])
print(np.array_split(a,3))
[数组([1,2,3]),数组([4,5,6]),数组([7,8])]数组形状变化操作操作
描述
文档
other=ndarray.flatten()
平铺一个二维数组到一维数组
数字https://。组织/单据/稳定/参照/生成/数量。恩达拉雷。展平。超文本标记语言
numpy.flip()
翻转一维数组中元素的顺序
https://份文件。scipy。组织/单据/稳定/参照/生成/数量。翻转。超文本标记语言
np.ndarray[:-1]
翻转一维数组中元素的顺序
使再成形
改变数组的维数
https://份文件。scipy。组织/单据/稳定/参照/生成/数量。形状。超文本标记语言
挤压
从数组的形状中删除单维度条目
数字https://。组织/单据/稳定/参照/生成/数量。挤压。超文本标记语言
扩展_变暗
扩展数组维度
https://份文件。scipy。org/doc/numpy-1。13 .0/引用/生成/numpy。expand _ dims。超文本标记语言
其他操作
描述
文档
other=ndarray.flatten()
平铺2维数组到一维数组
数字https://。组织/单据/稳定/参照/生成/数量。恩达拉雷。展平。超文本标记语言
array=np.transpose(其他)数组1000吨。
数组转置
数字https://。组织/单据/稳定/参照/生成/数量。转置。超文本标记语言
inverse=np.linalg.inv(矩阵)
求矩阵的逆矩阵
https://份文件。scipy。组织/单据/金额/参照/生成/金额。Lina LG。发票。超文本标记语言
举例#寻找给定矩阵的逆矩阵
np.linalg.inv([[3,1],[2,4]])
数组([[ 0.4,-0.1),
[-0.2, 0.3]])数学计算操作操作
描述
文档
加法(x,y) x y
加
https://份文件。scipy。组织/单据/金额/参照/生成/金额。补充。超文本标记语言
减去(x,y) x - y
减
https://份文件。scipy。组织/单据/金额/参照/生成/金额。减去。html # numpy。减去
除以(x,y) x/y
除
https://份文件。scipy。组织/单据/金额/参照/生成/金额。划分。html # numpy。划分
乘(x,y) x @ y
乘
https://份文件。scipy。组织/单据/金额/参照/生成/金额。倍增。html # numpy。多样地
np.sqrt(x)
平方根
https://份文件。scipy。组织/单据/金额/参照/生成/金额。sqrt。html # numpy。平方根计算
辛(十)
元素正弦
https://份文件。scipy。组织/单据/金额/参照/生成/金额。罪恶。html # numpy。犯罪
np.cos(x)
元素余弦
https://份文件。scipy。组织/单据/金额/参照/生成/金额。因为。html # numpy。余弦
np.log(x)
元素自然对数
https://份文件。scipy。组织/单据/金额/参照/生成/金额。日志。html # numpy。原木
np.dot(x,y)
点积
https://份文件。scipy。组织/单据/金额/参照/生成/金额。点。超文本标记语言
NP。根([1,0,-4])
给定多项式系数的根
https://份文件。scipy。组织/单据/金额/参照/生成/金额。根。超文本标记语言
举例
#如果将一维数组添加到二维数组(或相反),NumPy
#选择维数较小的数组,并将其添加到一
#尺寸更大
a=np.array([1,2,3])
b=np.array([(1,2,3),(4,5,6)])
print(np.add(a,b))
[[2 4 6]
[5 7 9]]
# NP。根示例
#考虑一个多项式函数(x-1)^2=x^2-2 * 1
#谁的根是1,1
NP。根([1,-2,1])
数组([1。 1.])
#类似地,当x=2时,x^2 - 4=0有根
NP。根([1,0,-4])
数组([-2。 2.])比较操作
描述
文档
==
等于
https://docs.python.org/2/library/stdtypes.html
!=
不等于
https://docs.python.org/2/library/stdtypes.html
小于
https://docs.python.org/2/library/stdtypes.html
大于
https://docs.python.org/2/library/stdtypes.html
=
小于等于
https://docs.python.org/2/library/stdtypes.html
=
大于等于
https://docs.python.org/2/library/stdtypes.html
np.array_equal(x,y)
数组比较
数字https://。组织/单据/稳定/参照/生成/数量。数组_等于。超文本标记语言
举例:#使用比较运算符将创建布尔数字数组
z=np.array([1,2,3,4,5,6,7,8,9,10])
c=z 6
打印(三)
[真实真实真实真实虚假虚假虚假虚假虚假]基本的统计操作
描述
文档
平均值(数组)
平均
数字https://。组织/单据/稳定/参照/生成/数量。卑鄙。html # numpy。意思是
中值(数组)
中位数
数字https://。组织/单据/稳定/参照/生成/数量。中位数。html # numpy。中位数
array.corrcoef()
相关系数
数字https://。组织/单据/稳定/参照/生成/数量。科尔科夫。html # numpy。相关系数
np。标准(数组)
标准偏差
https://份文件。scipy。组织/单据/金额/参照/生成/金额。STD。html # numpy。神学博士。
举例#数组的统计数据
a=np.array([1,1,2,5,8,10,11,12])
#标准偏差
打印(np.std(a))
4.2938910093294167
#中值
打印(np.median(a))
6.5更多操作
描述
文档
array.sum()
数组求和
数字https://。组织/单据/稳定/参照/生成/数量。总和。超文本标记语言
array.min()
数组求最小值
数字https://。组织/单据/稳定/参照/生成/数量。恩达拉雷。量滴超文本标记语言
array.max(轴=0)
数组求最大值(沿着0轴)
array.cumsum(轴=0)
指定轴求累计和
数字https://。组织/单据/稳定/参照/生成/数量。累计。超文本标记语言
切片和子集操作
描述
文档
数组[我]
索引我处的一维数组
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[我,j]
索引在[i][j]处的二维数组
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[i 4]
布尔索引
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[0:3]
选择索引为0, 1和2
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[0:2,1]
选择第0,1行,第一列
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[:1]
选择第0行数据项(与[0:1,]相同)
https://numpy.org/doc/stable/reference/arrays.indexing.html
数组[1:2,]
选择第一行
https://numpy.org/doc/stable/reference/arrays.indexing.html
[评论]:
数组[1,]
等同于数组[1,]
数组[ :-1]
反转数组
同上
举例b=np.array([(1,2,3),(4,5,6)])
#逗号前的索引*是指*行*,
#逗号*后的索引*指*列*
print(b[0:1,2])
[3]
print(b[:len(b),2])
[3 6]
打印(b[0,])
[1 2 3]
打印(b[0,2:])
[3]
打印(b[:0])
[1 4]
c=np.array([(1,2,3),(4,5,6)])
d=c[1:2,0:2]
打印(四)
[[4 5]]切片举例将数组作为铭牌导入
a1=np.arange(0,6)
a2=np.arange(10,16)
a3=np.arange(20,26)
a4=np.arange(30,36)
a5=np.arange(40,46)
a6=np.arange(50,56)
a=np.vstack((a1,a2,a3,a4,a5,a6))生成矩阵和切片图示
小技巧
例子将会越来越多的,欢迎大家提交。
布尔索引
#使用两个铭牌阵列时的索引技巧
a=np.array([1,2,3,6,1,4,1])
b=np.array([5,6,7,8,3,1,2])
#仅在b==1的索引处保存a
其他_a=a[b==1]
#保存a中除索引处以外的所有点,其中b!=1
other_other_a=a[b!=1]将数组作为铭牌导入
x=np.array([4,6,8,1,2,6,9])
y=x 5
打印(x[y])
[6 8 6 9]
#甚至更短
x=np.array([1,2,3,4,4,35,212,5,5,6])
打印(x[x 5])
[1 2 3 4 4]【参考】https://github.com/juliangaal/python-cheat-sheet QQ群851320808
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。