• numpy高级索引


    布尔值索引

    name_arr = np.array(["bob","joe","will","bob","joe","will","joe"])
    rnd_arr = np_random.randn(7,4)
    print(rnd_arr)
    print(name_arr == "bob") #[ True False False  True False False False]
    print(rnd_arr[name_arr == "bob",2])  #[-0.39080416  0.39002854]   根据布尔值进行索引
    mask_arr = (name_arr == 'bob') | (name_arr == 'will')
    print(mask_arr)#[ True False  True  True False  True False]
    print(rnd_arr[mask_arr])

    整数数组索引

    用数组索引可以索引多个行或者多个列

    for i in range(8):
        arr[i] = i
    # print(arr)
    # print(arr[[4,3,0,6]])
    # print(arr[[-3,-5,-7]])
    arr = np.arange(32).reshape((8, 4))
    print(arr)
    print(arr[[1, 5, 7, 2], [0, 3, 1, 2]]) # 打印arr[1, 0]、arr[5, 3],arr[7, 1]和arr[2, 2]
    print(arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]])  # 1572行的0312列
    print(arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]) # 可读性更好的写法

    数组转换

    #--------数组转换
    arr = np.arange(15).reshape((3,5))
    print(arr)
    print(arr.T)
    print(np.dot(arr,arr.T))   #矩阵乘法
    
    #高维数组转换
    a = np.arange(16).reshape((2,2,4))
    #根据维度转换
    # tanspose 维度本是0,1,2,3顺序往下排,我们可用transpose改变顺序
    # 例如2,2,4 变为 4,2,2
    print(a)
    print(a.shape)
    print(a.transpose((2,0,1)))
    print(a.transpose((2,0,1)).shape)
  • 相关阅读:
    URAL 1948 H
    int、long、long long取值范围
    Bonetrousle HackerRank 数学 + 思维题
    湖南省第十二届大学生计算机程序设计竞赛 problem A 2016
    Abbreviation ---- hackerrank
    POJ 3321 Apple Tree DFS序 + 树状数组
    HDU
    PICO CTF 2013 PHP 2: 85
    XSS进阶三
    XSS进阶二
  • 原文地址:https://www.cnblogs.com/echoboy/p/9518384.html
Copyright © 2020-2023  润新知