Python数据计算numpy
>>> import numpy as np
>>> #array
>>> data=[1,3,4,5]
>>> type(data)
<class 'list'>
#array()产生矩阵对象
>>> arr=np.array(data)
>>> arr
array([1, 3, 4, 5])
>>> type(arr)
<class 'numpy.ndarray'>
>>> dat=[[1,0,0],[0,1,0],[0,0,1]]
>>> dat
[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
>>> arr=np.array(data)
>>> arr
array([1, 3, 4, 5])
>>> arr=np.array(dat)
>>> arr
array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
>>> arr.shape
(3, 3)
>>> arr.dtype
dtype('int32')
#arange
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])
#eye
>>> np.eye(4,k=1)
array([[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.],
[ 0., 0., 0., 0.]])
#T
>>> arr.T
array([1, 2, 3, 4])
>>> arr=[[3,3,4,2],[3,4,5,6]]
>>> arr
[[3, 3, 4, 2], [3, 4, 5, 6]]
>>> arr1=np.array(arr)
>>> arr1
array([[3, 3, 4, 2],
[3, 4, 5, 6]])
>>> arr1.T
array([[3, 3],
[3, 4],
[4, 5],
[2, 6]])
#dot
>>> arr1
array([[3, 3, 4, 2],
[3, 4, 5, 6]])
>>> np.dot(arr1,arr1.T)
array([[38, 53],
[53, 86]])
>>> np.dot(arr1.T,arr1)
array([[18, 21, 27, 24],
[21, 25, 32, 30],
[27, 32, 41, 38],
[24, 30, 38, 40]])
#数据运算
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.square(arr)
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81], dtype=int32)
>>> np.log(arr)
array([ -inf, 0. , 0.69314718, 1.09861229, 1.38629436,
1.60943791, 1.79175947, 1.94591015, 2.07944154, 2.19722458])
>>> np.ceil(1)
1.0
>>> np.ceil(5)
5.0
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.ceil(4.6)
5.0
>>> np.floor(4.6)
4.0
>>> np.rint(np.log(arr))
array([-inf, 0., 1., 1., 1., 2., 2., 2., 2., 2.])
#双目运算
>>> np.add(arr,np.log(arr))
array([ -inf, 1. , 2.69314718, 4.09861229,
5.38629436, 6.60943791, 7.79175947, 8.94591015,
10.07944154, 11.19722458])
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.add(arr,5)
array([ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#meshgrid
>>> x=np.arange(1,4,1)
>>> x
array([1, 2, 3])
>>> y=np.arange(10,15,1)
>>> y
array([10, 11, 12, 13, 14])
>>> X,Y=np.meshgrid(x,y)
>>> X
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
>>> Y
array([[10, 10, 10],
[11, 11, 11],
[12, 12, 12],
[13, 13, 13],
[14, 14, 14]])
>>>#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,
>>>#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。
>>>#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。
>>>#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,
>>>#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。
>>>#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。
#where
>>> x=np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> y=np.arange(-9,1,1)
>>> y
array([-9, -8, -7, -6, -5, -4, -3, -2, -1, 0])
>>> cond=np.array([True,False,True,False,True,False,True,False,True,False])
>>> np.where(cond,x,y)
array([ 0, -8, 2, -6, 4, -4, 6, -2, 8, 0])
>>> np.where(x>0,1,-1)
array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> np.where(y<0,1,-1)
array([ 1, 1, 1, 1, 1, 1, 1, 1, 1, -1])
#计算
>>> arr=np.random.randn(5,4)
>>> arr
array([[-1.56699351, 0.0367636 , 0.47858635, -1.21582486],
[-0.66492923, 1.48287249, 1.38008138, 1.92236202],
[ 1.18952338, 1.21554153, -0.371991 , 1.22583606],
[-0.86845156, 0.32021784, -0.97300478, 0.63786163],
[-0.07806264, 1.04740613, 2.4356263 , 0.38637222]])
>>> arr.mean()
0.40098966781551437
>>> np.mean(arr)
0.40098966781551437
>>> arr.sum
<built-in method sum of numpy.ndarray object at 0x00000000082747B0>
>>> arr.sum()
8.0197933563102879
>>> arr.mean(axis=1)
array([-0.56686711, 1.03009666, 0.81472749, -0.22084422, 0.9478355 ])
>>> #线性代数
>>> from numpy.linalg import inv,qr,det
>>> X=np.array([[1,2],[3,8]])
>>> X
array([[1, 2],
[3, 8]])
>>> X.T.dot(X)
array([[10, 26],
[26, 68]])
>>> MAT=X.T.dot(X)
>>> MAT
array([[10, 26],
[26, 68]])
>>> inv(MAT)
array([[ 17. , -6.5],
[ -6.5, 2.5]])
>>> det(MAT)
4.000000000000079
>>> q,r=qr(MAT)
>>> q
array([[-0.35897908, -0.93334561],
[-0.93334561, 0.35897908]])
#读写文件