Numpy

1. Numpy的属性

    ndim:维度;   shape:行数和列数;   size:元素个数

import numpy as np
arr=np.array([[1,2,3],[2,3,4]])
print(arr.ndim, arr.shape, arr.size)   #:2  (2,3)   6

2. Numpy的创建   

   1.用arange创建连续数组:

print(np.arange(10,20,2))   # [10 12 14 16 18]
   2. 用reshape改变数据的形状
a=np.arange(0,12,1).reshape((3,4))    #将数据转换为0~11,三行四列的矩阵 
print(a)
e=np.arange(12,0,-1).reshape((3,4))    #将数据转换为12~1,三行四列的矩阵
print(e)

 3. 矩阵a和b

a=np.array([[0,1],[2,3]])                a:[[0 1]       b:[[0,1]       a*b:为两矩阵对应元素相乘:[[0,1]
b=np.arange(4).reshape(2,2)                [2 3]]          [2,3]]                               [4,9]]
print(a*b)
print(np.dot(a,b))                       np.dot(a,b)和 a.dot(b):两矩阵相乘  [[2 3]
print(a.dot(b))                                                             [6 11]]
4. axis=1时,以行作为查找单元; axis=0时,以列作为查找单元 
d=np.random.random((2,4))       #生成两行四列从0至1的矩阵
print(np.sum(d,axis=1))         #以行作为查找单元:[ele1  ele2]
print(np.sum(d,axis=0))         #以列作为查找单元:[ele1  ele2  ele3  ele4]

5. np.argmin(a) ;求矩阵中最小元素的索引

   np.argmax(a);求矩阵中最大元素的索引

   求解平均值:np.mean(e),   np.average(e),  e.mean()

   累加函数:np.cumsum(e);  输出前0-i项的和

   累差函数:np.diff(e) ;输出第i+1项的值-第i项的值

   np.sort(e): 对矩阵中的每一行进行排序操作

6.  矩阵转置:np.transpose(e);   e.T  (关于轴对称)

7.  二维索引

    e[1][1] = e[1,1];第二行第二列元素;

    e[1, 1:3]; 第二行第二列元素和第二行第三列元素

    for row in e:  取一行元素组成list

    for column in e: 取一列元素组成list

8. Numpy合并

a=np.array([1,1,1])   [1 1 1]
b=np.array([2,2,2])   [2 2 2]
c=np.vstack((a,b))    #垂直合并     [[1 1 1]     
d=np.hstack((a,b))    #水平合并      [2 2 2]        [1 1 1 2 2 2] 
print(c,d) 
print(a[np.newaxis,:])   #将矩阵转换为1行3列   [[1 1 1]]
print(a[:,np.newaxis])   #将矩阵转换为3行1列:[[1] [1] [1]]

9. 分割

a=np.arange(12).reshape(3,4)
print(np.split(a,2,axis=1))    #纵向分割
# [array([[0,1],
         [4,5],
         [8,9]]),
  array([[2,3],
         [6,7],
         [10,11]])]

   不等量分割

print(np.array_split(a,3,axis=1)) #不等量分割     第一部分两列,第二部分一列,第三部分一列

   纵向分割

np.vsplit(a,3)   #纵向分割      [array([[0,1,2,3]]), array([[4,5,6,7]]), array([[8,9,10,11]])]
等价于np.split(a,3,axis=0)横向分割
   横向分割
np.hsplit(a,2)           #横向分割 [array([[0,1], [4,5], [8,9]]),  array([[2,3], [6,7], [10,11]])]
np.split(a,2,axis=1)  #纵向分割

10. 赋值、浅复制和深复制

    1. 赋值 

a=np.arange(4) #:[0  1  2  3]
b=a
a[0]=11
print(b)       #:[11 1  2 3 ]

   2. 判断两个变量是否完完全全相等

b is a   #:True        b完完全全是a

  3. copy:b想要a的值,而又不想关联a;

b=a.copy()





    

   

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值