• 索引和切片


    Numpy数组的索引是一个内容丰富的主题,因为选取数据子集或单个元素的方式有很多。一维数组很简单,跟Python列表的功能差不多

     1 In [1]: import numpy as np
     2 
     3 In [2]: arr = np.arange(10)
     4 
     5 In [3]: arr 
     6 Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
     7 
     8 In [4]: arr[5:8]
     9 Out[4]: array([5, 6, 7])
    10 
    11 In [5]: arr[5:8] = 12
    12 
    13 In [6]: arr
    14 Out[6]: array([ 0,  1,  2,  3,  4, 12, 12, 12,  8,  9])

    如上所示,当讲一个标量值赋值给一个切片时,该值会自动传播到整个选区,与列表最重要的区别在于,数组切片是原始数组的视图。数据不会被复制,视图上的任何修改都会直接反应到原数组上(如果需要得到一份副本而非视图,就需要显示的进行复制操作,例如arr[5:8].copy())

    对于高纬度数组,能做的事情更多。在一个二维数组中,各索引位置上的元素不在是标量而是一维数组。

    1 In [7]: arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
    2 
    3 In [8]: arr2[1]
    4 Out[8]: array([4, 5, 6])

    也可以对各个元素进行递归访问,传入一个以逗号隔开的索引列表来选取单个元素。以下两种方式是等价的。

    1 In [9]: arr2[1][2]
    2 Out[9]: 6
    3 
    4 In [10]: arr2[1,2]
    5 Out[10]: 6

    在多维数组中,如果省略了后面的索引,则返回的对象会是一个维度第一点的ndarray。

    1 In [12]: arr3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
    2 
    3 In [13]: arr3
    4 Out[13]: 
    5 array([[[ 1,  2,  3],
    6         [ 4,  5,  6]],
    7 
    8        [[ 7,  8,  9],
    9         [10, 11, 12]]])

    arr3是一个2*3的数组

    1 In [14]: arr3[0]
    2 Out[14]: 
    3 array([[1, 2, 3],
    4        [4, 5, 6]])
  • 相关阅读:
    Office 2010激活 NO KMS products detected问题
    强制换行/不换行 (兼容IE)
    el-radio再次点击取消选中
    几个 JavaScript 实用小技巧
    微信小程序-点击事件传递参数
    微信小程序-存取本地缓存
    微信小程序-路由方式
    element-ui 表格排序失效
    watch监听(数组或者对象)
    vue 引入 base64或者md5对密码进行加密
  • 原文地址:https://www.cnblogs.com/yu-1104/p/7877635.html
Copyright © 2020-2023  润新知