python numpy随笔(数组的索引、切片、迭代)

数据本身是一个对象,它同样也可以像python中的列表、元素等引用类型那种操作数据

  1. 索引(其实类似c语言中的数组操作,只是多了个多个元素索引)
    import numpy as np
    
    a = np.arange(1, 10)
    b = np.arange(1, 10).reshape(3, 3)
    
    # 在一维数组中,指定元素索引(查找到第二元素)
    print(a[1])
    
    # 在一维数组中,指定元素索引(查找到最后一个元素)
    print(a[-1])
    
    # 在一维数组中,指定元素索引(查找到第一个,第三个和最后一个元素)
    print(a[[0,2,-1]])
    
    # 在二维数组中,指定元素索引(查找到第二列)
    print(b[1])
    
    # 在二维数组中,指定元素索引(查找到第二列第二个元素)
    print(b[1][1])
    
  2. 迭代(数组在python同样也是一个可迭代对象,因此可以用循环)
    import numpy as np
    
    a = np.arange(1, 10)
    b = np.arange(1, 10).reshape(3, 3)
    
    # 一维数组使用for循环
    for i in a:
        print(i)
    
    # 二维数组使用for循环
    for i in b:
        print(i)    #这里打印的是行
    
    # 二维数组使用for循环
    for i in b.flat:
        print(i)    #这里打印的是每个元素,使用flat
    
    # 使用numpy自带的遍历方法
    # funcld 判断方法,可以自己定义,也可以用numpy自带的
    # axis 选择如何操作,0 为按行操作,1为按列操作 不过要注意数组的维数
    # arr 数组
    # np.apply_along_axis(func1d, axis, arr, *args, **kwargs)
    
    def fun(x):
        return x/2
    
    print(np.apply_along_axis(fun,axis=0,arr=b))
    print(np.apply_along_axis(fun,axis=1,arr=b))
  3. 切片(一维数据类似于列表,二维数组则要注意一下)
    import numpy as np
    
    a = np.arange(1, 10)
    b = np.arange(1, 10).reshape(3, 3)
    
    # 一维数组,输出第二个,第三个。
    print(a[1:3])
    
    # 一维数组,输出第二个,第四个。
    print(a[1:4:2])
    
    # 二维数组,输出第二行(以二维数组方式输出)
    print(b[1:2:])
    
    # 二维数组,输出第二行(以一维数组方式输出)
    print(b[1,])
    
    # 二维数组,输出第二行,第一个元素
    print(b[1,0])
    
    # 二维数组,输出
    # [0][0],[0][1]     1,2
    # [1][0],[1][1]     3,4
    print(b[0:2,0:2])
    
    # 二维数组,输出
    # [0][0],[0][1]     1,2
    # [2][0],[2][1]     7,8    
    print(b[[0,2],0:2])

猜你喜欢

转载自blog.csdn.net/fm345689/article/details/88622442
今日推荐