Numpy基础教程

Numpy基础教程

目录

基本概念

numpy中的array创建

numpy中的array形状,纬度,大小

numpy中的array加减法,次方,三角函数,乘法

numpy中的最大小值,求和,平均值,中位数

numpy中值对应的索引

numpy中的累和,累差

numpy中判断非零元素

numpy中Transpose

numpy中np.clip 大小阈值

numpy中索引对应的值

numpy中的迭代

numpy中的数组矩阵合并

numpy中的数组矩阵分割

numpy中的赋值和deepcopy

基本概念

数组:具有相同类型的数据组成的序列,且该序列是有序集合。
数组中的每一个数据称为数据元素。
数组元素由其所在的位置序号来区分。
一维数组是向量,二维数组是矩阵,三维数组.........

首先需要导入:

import numpy as np

numpy中的array创建

  • # 创建一维数组
    array_1 = np.array([1,2,3])
    

    在这里插入图片描述

  • # 创建二维数组(多维数组也同理)
    array_2 = np.array([[1,2,3],
                       	[4,5,6]])  # 可以放在同一排,也可以对齐
    

    在这里插入图片描述

  • # 生成全零的形状为[2,3]的数组,用括号也可以(2,3)
    o = np.zeros([2,3])
    

    在这里插入图片描述

  • # 生成全一的形状为[3,4]的数组
    one = np.ones([3,4])
    

    在这里插入图片描述

  • # 生成全为空的[3,3]的数组,其实是生成很小很小的数
    empty = np.empty([3,3])
    
  • # 生成有序的一维数组
    youxu = np.arange(10)  # 0-9总的10个数
    # 将一维数组重成其他形状
    a = np.array(12)
    b = a.reshape([3,4])
    

    在这里插入图片描述

    numpy中的array形状,纬度,大小:

  • # 数组的形状,维度,大小
    print(array_2.shape)
    print(array_2.ndim)
    print(array_2.size)
    

    在这里插入图片描述

    numpy中的array加减法,次方,三角函数,乘法:

  • # array的减法和加法
    a = np.array([10,20,30,40])
    b = np,arange(4)
    c = a-b
    d = a+b
    

    在这里插入图片描述

  • # array的次方
    a = np.array([10,20,30,40])
    b = a**2
    print(b)
    

    在这里插入图片描述

  • # numpy中的三角函数sin cos tan
    a = np.array([[1,2,3],[2,3,4],[3,4,5]])
    

    在这里插入图片描述

  • # 判断各个数,返回True Flase
    a = np.arange(4)
    print(a<3)
    print(a>3)
    

    在这里插入图片描述

  • # numpy 的乘法(每个元素相乘和矩阵相乘)
    a = np.array([[2,3],[3,4]])
    b = np.arange(4).reshape([2,2])
    # 每个元素相乘
    c = a*b
    # 矩阵相乘
    d = np.dot(a,b)
    d_2 = a.dot(b)
    

    在这里插入图片描述

    numpy中的最大小值,求和,平均值,中位数:

  • # 矩阵元素的最大值最小值,求和,平均值,中位数
    # 最大值
    a = np.arange(2,14).reshape([3,4])
    np.max(a)  # 全部元素的最大值
    np.max(a,axis=0) # 按列  每列的最大值
    np.max(a,axis=1) # 按行  每行的最大值
    # 最小值同理
    np.min(a)
    np.min(a,axis=0)
    np.min(a,axis=1)
    # 求和同理
    np.sum(a)
    np.sum(a,axis=0)
    np.sum(a,axis=1)
    # 平均值同理
    np.mean(a)
    np.average(a)
    # 中位数同理
    np.median(a)
    

    在这里插入图片描述

    numpy中值对应的索引:

  • # 返回索引
    # 最大值索引
    np.argmax(a)  # 全部元素最大值的索引
    np.argmax(a,axis=0)  # 按列 每列的最大值索引
    np.argmax(a,axis=1)  # 按行 每行的最大值索引
    # 最小值索引同理
    np.argmin(a)
    np.argmin(a,axis=0)
    np.argmin(a,axis=1)
    

    在这里插入图片描述

    numpy中的累和,累差:

  • # 求累和和累差
    a = np.arange(2,14).reshape([3,4])
    # 累和
    np.cumsum(a)
    # 累差
    np.diff(a)
    

    在这里插入图片描述

    numpy中判断非零元素:

  • # 判断元素非零
    a = np.array([[1,2],[0,3]])
    np.nonzero(a)
    # 0行0列非零,0行1列非零,1行1列非零
    

    在这里插入图片描述

    numpy中Transpose:

  • # 矩阵的转置,行变列,列变行
    a = np.arange(6).reshape([2,3])
    print(a,a.shape)
    b = np.transpose(a)
    print(b,b.shape)
    

    在这里插入图片描述

    numpy中np.clip 大小阈值:

  • # np.clip 给定min和max,小于最小值元素的变为最小值,大于最大值的元素变为最大值,介于中介的保持不变
    a = np.array([[2,3,4],[3,7,8],[20,45,6]])
    np.clip(a,6,10)
    

    在这里插入图片描述

    numpy中索引对应的值:

  • # numpy的索引
    # 一维数组的索引
    one_array = np.arange(2,14)
    print(one_array)
    print(one_array[3]) # 想要显示5的话
    

    在这里插入图片描述

  • # 二维数组的索引
    two_array = np.arange(2,14).reshape([3,4])
    print(two_array)
    # 想要显示第二行
    print(two_array[1])  
    print(two_array[1,:])
    # 想要显示第三列
    print(two_array.T[2])   
    # 想要显示10
    print(two_array[2][0])  
    print(two_array[2,0])  
    # 想要显示[11,12,13]
    print(two_array[2,1:4])
    

    在这里插入图片描述

    numpy中的迭代:

  • two_array = np.arange(2,14).reshape([3,4])
    # 迭代行
    for row in two_array:
        print(row)
    # 迭代列
    for col in two_array.T:
        print(col)
    # 迭代每一个元素
    print(two_array.flatten())
    for item in two_array.flat:
        print(item)
    

    在这里插入图片描述

    numpy中的数组矩阵合并:

  • # 合并
    # a,b是一维数组
    a = np.array([1,1,1])
    b = np.array([2,2,2])
    # 上下合并后变成二维矩阵
    print(np.hstack((a,b)))   # horizontal stack  左右合并
    print(np.vstack((a,b)))   # vertical stack  上下合并
    
    # 直接给一维数组增加新的纬度
    print(a[np.newaxis,:])   # 在行上增加
    print(a[:,np.newaxis])   # 在列上增加
    c = a[:,np.newaxis]
    d = b[:,np.newaxis]
    merge_vstack = np.vstack((c,d,d,c))   # 上下合并
    merge_hstack = np.hstack((c,d,d,c))   # 左右合并
    merge_axis0 = np.concatenate((c,d,d,c), axis=0)  # axis=0 上下合并
    merge_axis1 = np.concatenate((c,d,d,c), axis=1)  # axis=1 左右合并
    print("merge_vstack:",merge_vstack )  
    print("merge_hstack:",merge_hstack)
    print("merge_axis0:",merge_axis0)
    print("merge_axis1:",merge_axis1)
    

    在这里插入图片描述

    numpy中的数组矩阵分割:

  • # 分割
    a = np.arange(12).reshape([3,4])
    # 水平均等分割
    print(np.split(a,2,axis=1))
    print(np.hsplit(a,2))
    # 上下均等分割
    print(np.split(a,3,axis=0))
    print(np.vsplit(a,3))
    # 不均等分割不能用np.split(),要用np.array_split()
    print(np.split(a,3,axis=1))  # 这句会报错
    print(np.array_split(a,3,axis=1))
    

    在这里插入图片描述

    numpy中的赋值和deepcopy:

  • # 赋值  a,b,c,都会关联
    a = np.arange(4)
    b = a
    c = a
    d = b
    b is a
    d is a
    a[0] = [13]
    print(a)
    print(b)
    print(c)
    print(d)
    # deep copy  不关联
    b = a.copy()  # deep copy
    b is a
    print(a)
    print(b)
    a[1:3] = [100,99]
    print(a)
    print(b)
    

    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值