import numpy as np
-------------------------------------------------------------
生成序列
np.arange(起点,终点,步长)
左闭右开,步长可省,默认为1
a = np.arange(0,5)
>>> [0, 1, 2, 3, 4]
b = np.arange(0,5,0.5)
>>> [0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5]
-------------------------------------------------------------
等差数列
numpy.linspace()
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None,axis=0)
其中 retstep [bool, optional] 若为True,返回(samples, step),step为样本间的步长。
详细见文章后面的链接
-------------------------------------------------------------
等比数列
numpy.logspace()
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None,axis=0)
其中base是底数
a=np.logspace(2.0,3.0,num=4,base=5.0)
>>> [ 25. 42.74939867 73.10044346 125. ]
-------------------------------------------------------------
等差、等比数列构建时,默认终点也放进去的
-------------------------------------------------------------
为什么要用数组?见下面的例子
import numpy as np
a=[1,2,3,4,5]
b=[6,7,8,9,10]
c=a*b
TypeError: can't multiply sequence by non-int of type 'list'
A=np.array(a)
B=np.array(b)
C=A*B
print(C)
>>> [ 6 14 24 36 50]
数组的形式支持更多运算
返回一个数组的行数、列数
k=np.array((([3,4,5],[5,6,7],[1,2,3],[4,5,6])))
print(k.shape)
特殊矩阵
#生成都是1的矩阵
>>> np.ones((2,3))
[[1. 1. 1.]
[1. 1. 1.]]
#生成都是0的矩阵
>>> np.zeros((2,2))
#生成单位矩阵
>>> np.eye(2,2)
#生成对角矩阵
>>> np.diag([1,2,3])
[[1 0 0]
[0 2 0]
[0 0 3]]
提取数组或矩阵中的元素
a1=np.array([1,2,3,4,5])
a2=np.array(((1,2,3),(4,5,6)))
数组中多项提取
print(a1[[1,2,4]])
>>> [2 3 5]
矩阵中单个提取
print(a2[1,1])
>>> 5
提取行,列
print(a2[1,:])
print(a2[:,2])
[4 5 6]
[3 6]
左闭右开,0到1行,1到2列提取
print(a2[0:2,1:3])
[[2 3]
[5 6]]
相关解释链接:
numpy.linspace()