python中的numpy数组索引切片用法2(随手记)

NumPy 数组的索引和切片非常灵活,提供了多种方式来访问和操作数组的数据。除了基本的索引和花式索引,还有其他一些高级的索引方法:

  1. 切片索引(Slicing):

    与 Python 列表类似,但更强大。可以在多维数组上进行,如 arr[start:stop:step]
  2. 整数数组索引:

    通过整数数组,选择数组中对应索引位置的元素,如 arr[[1, 5, 7]]
  3. 布尔索引:

    使用布尔数组进行索引。通常与条件表达式结合使用,如 arr[arr > 5]
  4. 多维索引:

    在多维数组中,可以对每个维度进行独立的索引和切片操作,如 arr[2, 3]arr[:2, -1]
  5. 省略号(Ellipsis):

    使用省略号 ... 来表示多个冒号,例如在多维数组中表示剩余维度的完整切片,如 arr[..., 0]
  6. np.ix_ 函数:

    使用 np.ix_ 可以进行更复杂的索引,特别是在需要从每个维度选择特定元素时。
  7. np.where 函数:

    使用 np.where 可以根据条件找出元素的索引位置。
  8. np.select 函数:

    用于基于多个条件选择数组元素。
  9. np.take 和 np.put 函数:

    np.take 用于沿指定轴获取元素,而 np.put 用于替换指定位置的元素。
  10. 高级赋值操作:

    可以对数组的一部分进行高级赋值操作,如布尔或整数数组赋值。

各种 NumPy 索引技巧的示例结果:

import numpy as np # 创建一个示例数组

example_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

以下是各种 NumPy 索引技巧的代码示例以及对应的结果:

  1. 切片索引

    slicing = example_array[:2, 1:3] 
    # 输出结果:
    # array([[-1, 3], # [ 5, -1]]) 
  2. 整数数组索引

    integer_array_indexing = example_array[[0, 1], [1, 2]] 
    # 输出结果: 
    # array([2, 6]) 
  3. 布尔索引

    boolean_indexing = example_array[example_array > 5] 
    # 输出结果: 
    # array([6, 7, 8, 9]) 
  4. 多维索引

    multidimensional_indexing = example_array[1, 2] 
    # 输出结果: 
    # 6 
  5. 省略号

    ellipsis_indexing = example_array[1, ...] 
    # 输出结果: 
    # array([11, 5, -1]) 
  6. np.ix_ 函数

    ix_indexing = example_array[np.ix_([0, 2], [1, 2])] 
    # 输出结果: 
    # array([[2, 3], [8, 9]]) 
  7. np.where 函数

    where_indexing = np.where(example_array > 5) 
    # 输出结果: 
    # (array([1, 2, 2, 2]), array([2, 0, 1, 2])) 
  8. np.select 函数

    condition = [(example_array % 2 == 0), (example_array % 2 != 0)] 
    choice = [example_array, -example_array] 
    select_indexing = np.select(condition, choice) 
    # 输出结果: 
    # array([[-1, 2, -3],  [ 4, -5, 6],  [-7, 8, -9]]) 
  9. np.take 和 np.put 函数

    take_indexing = np.take(example_array, [0, 3, 6]) 
    np.put(example_array, [0, 3, 6], [10, 11, 12]) 
    # take_indexing 输出结果: 
    # array([1, 4, 7]) 
    # put_indexing 输出结果: 
    # array([[-1, -1, 3],  [11, 5, -1],  [-1, -1, 9]]) 
  10. 高级赋值操作

    example_array[example_array % 2 == 0] = -1 
    # 输出结果: 
    # array([[-1, -1, 3],  [11, 5, -1],  [-1, -1, 9]])

你可能感兴趣的:(python,numpy,开发语言)