NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是一个运行速度非常快的数学库,主要用于数组计算
numpy.arange(start,stop,step,dtype)
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型
实例:
// An highlighted block
import numpy as np
x=np.arange(10,20,2,dtype=complex)
print(x)
#输出结果 [10.+0.j 12.+0.j 14.+0.j 16.+0.j 18.+0.j]
numpy.linspace函数用于创建一个一维数组,数组是一个等差数列构成的
np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
start序列的起始值
stop序列的终止值,
如果endpoint为true,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为true时,数列中包含stop值,反之不包含,默认是True。
retstep如果为True时,生成的数组中会显示间距,反之不显示。
dtypendarray的数据类型
// 实例
import numpy as np
a=np.linspace(1,10,10,retstep=True)
print(a)
#输出结果 (array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]), 1.0)
numpy.logspace函数用于创建一个等比数列
np.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)
start序列的起始值为:base * * startstop
序列的终止值为:base**stop。如果endpoint为true,该值包含于数列中
base对数log的底数。
// 实例
import numpy as np
a=np.logspace(0,9,10,base=2)
print(a)
#输出结果 [ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]
从已有数组创建新的数组或者矩阵
numpy.asarray(a,dtype=None,order=None)
a任意形式的输入参数,可以是,列表,列表的元组,元组,元组的元组,元组的列表
多维数组dtype数据类型,可选
order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序
#将嵌套列表转换为矩阵(二维ndarray)
import numpy as np
x=[(1,2,3),(4,5)]
a=np.asarray(x)
print(a)
print(a.shape)
print(a[0])
'''
输出结果
[(1, 2, 3) (4, 5)]
(2,)
(1, 2, 3)
'''
numpy.empty方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
numpy.empty(shape,dtype=float,order='C')
shape数组形状(维度)
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
import numpy as np
x=np.empty([3,2],dtype=int)
print(x)
'''
输出
[[-1092971664 -2008948015]
[ 489906992 462]
[ 489906992 462]]
'''
数组元素为随机值,因为它们未初始化
函数 | 介绍 |
---|---|
numpy.zeros(shape,dtype=float,order=‘C’) | 创建全0数组 |
numpy.ones(shape,dtype=None,order=‘C’) | 创建全1数组 |
numpy.eye()方法创建单位矩阵创建指定对角元为1,其他元素为0的二维数组即单位矩阵
下面展示一些 内联代码片
。
numpy.ones(N,M=None,k=0,dtype=float,order='C')
N数组形状
M可选,默认矩阵为方阵
参数k指定元素为1的对角线,k=0表示主对角,k为正表示上三角的第k条对角,k为负表示下三角的第|k|条对角
import numpy as np
A=np.eye(4)
print(A)
B=np.eye (4,k =1)#上三角的第一条对角线全为1,其他元素为0
print(B)
'''
输出
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
'''
创建对角矩阵或取矩阵对角元素
下面展示一些 内联代码片
。
numpy.diag(v,k=0)
v列表、元组或矩阵
k指定对角线位置。
import numpy as np
A=np.diag([1,2,3])#创建三角矩阵
print(A)
a=np.diag(A)#取对角元素
print(a)
b=np.diag([[1,2,3],[4,5,6],[7,8,9]])#取对角元素
print(b)
'''
输出
[[1 0 0]
[0 2 0]
[0 0 3]]
[1 2 3]
[1 5 9]
'''
ndarray对象的内容可以通过索引或切片来访问和修改,与Python中list的切片操作一样。ndarray数组可以基于0-n的下标进行索引,切片对象可以通过内置的slice函数,并设置start,stop及step参数进行,从原数组中切割出一个新数组
实例:获取二维数组中(0,0),(1,1)和(2,0)位置处的元素
// 获取二维数组中(0,0),(1,1)和(2,0)位置处的元素
import numpy as np
A=np.array([[1,2],[3,4],[5,6]])
y=A[[0,1,2],[0,1,0]]
print(y)
'''
结果
[1 4 5]
'''
实例:获取大于5的元素
//实例:获取大于5的元素
import numpy as np
x=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print('我们的数组是:',x)
print('\n')
print('大于5的元素是:')
print(x[x>5])
'''
输出
我们的数组是: [[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
大于5的元素是:
[ 6 7 8 9 10 11]
'''
// An highlighted block
import numpy as np
x = np.arange(32).reshape((8, 4))
print(x)
print(x[[4, 2, 1, 7]])
'''
输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]
[28 29 30 31]]
[[16 17 18 19]
[ 8 9 10 11]
[ 4 5 6 7]
[28 29 30 31]]
'''