Python numpy

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]])
 #读写文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值