• numpy初识 old


    一、创建ndarrary

    1、使用np.arrary()创建

    1)、一维数组

    import numpy as np
    np.array([1, 2, 3, 4])

    2)、二维数组

    np.array([[1, 2, 3], [3, 8,0], [3, 2, 5]])

    注意

    a、创建数组的时候,数据类型最好一致,若不一致 str->float->int

    b、数组要等长

    不等长的数组

    np.array([[1, 1, 2], [3, 5, 1], [2, 0]])

    结果

    array([list([1, 1, 2]), list([3, 5, 1]), list([2, 0])], dtype=object)

    3)、图片

    import matplotlib.pyplot as plt

    读取图片  图片->数组(三维)

    img_arr = plt.imread("a.jpg")

    展现图片  数组->图片

    plt.imshow(img_arr)

    4)、获取数组的形状

    img_arr.shape

    2、使用routeines创建

    1)、ones

    np.ones(shape=(3, 6))

    3行6列,内容为1.的二维数组  dtype定义数据的类型

    2)、zeros

    np.zeros(shape=(2,5))

    2行5列值为0.的二维数组

    3)、full

    自定义数据

    np.full(shape=(3, 5), fill_value=10)

    3行5列值为10的二维数组

    4)、linspace

    等差数组

    np.linspace(start=0, stop=100, num=10)

    5)、arange

    与range有点相似step步长

    np.arange(10,100,5)

    6)、random.randint

    np.random.randint(10, 30, size=(3,5))

    7)、random.randn

    正态分布

    np.random.randn(2, 3)

    2行3列随机数组

    8)、random.random

    0~1

    np.random.random(size=(2,4))

    注意:关于random

    np.random.seed(10)

    固定时间种子,产生的随机数就会固定下来

     二、ndarray属性

    1、size

    数组元素的个数

    arr.size

    2、shape

    数组的形状(维度+长度)

    arr.shape

    3、ndim

    获取当前数组的维度

    arr.ndim

    4、dtype

    获取当前数组数据的类型

    arr.dtype

    5、type

    获取数组的类型

    type(arr)

     三、ndarray的基本操作

    1、索引

    arr = np.random.randint(1, 100, size=(4, 5))
    # 获取索引值
    arr[1][2]
    # 修改索引值
    arr[1][2] = 30
    arr

    2、切片

    列表的切片相似

    行切片

    arr[0:2]

    列切片

    arr[:,1:3]

    注意:用逗号隔开

    行列切片

    arr[1:3, 2:4]

    行倒序

    arr[::-1]

    列倒序

    arr[:,::-1]

    全倒序

    arr[::-1,::-1]

    图片全倒置

    new_arr = arr[::-1, ::-1, ::-1]
    plt.imshow(new_arr)

    3、变形

    注意:reshape(元祖或直接写数字),新的shape和原来的shape的size必须一样

    变成一维数组

    arr.reshape((20,))

    变形二维数组

    arr.reshape((2, 10))

    变形三维数组

    arr.reshape(2, 5, 2)

    图片倒置

    arr2 = plt.imread("a.jpg")
    # 变形成一维数组
    new_arr2 = arr2.reshape((313*500*3, ))
    # 倒置
    new_arr2
    new_ = new_arr2[::-1]
    # 变形
    new_
    plt.imshow(new_.reshape(313, 500, 3))

    补充

    -1表示自动计算数值

    4、级联

    前提:维度(ndim)必须一样,行或列有一个相等

    np.concatenate((arr, arr), axis=1)

    axis=1时,行级联(合并)

    axis=0时,列级联(合并)

    待续....

  • 相关阅读:
    【cdq分治】【P4390】[BOI2007]Mokia 摩基亚
    【树上莫队】【SP10707】 COT2
    【费用流】【网络流24题】【P1251】 餐巾计划问题
    【费用流】【网络流24题】【P4014】 分配问题
    【MST】P2323 [HNOI2006]公路修建问题
    【组合数学】【P5216】DLS采花
    【线段树】【P4198】 楼房重建
    【整体二分】【P3527】 [POI2011]MET-Meteors
    【线性基/神仙题】P4151 [WC2011]最大XOR和路径
    【枚举&数据结构】【P2484】 [SDOI2011]打地鼠
  • 原文地址:https://www.cnblogs.com/wt7018/p/11774661.html
Copyright © 2020-2023  润新知