Numpy 基本操作简明总结

索引

一维数组

从一维数组开始,例如:

>>> a = np.arange(5)
>>> a
array([0, 1, 2, 3, 4])

支持的索引模式如下:

  • 单个数字索引:
>>> a[2]
2
  • 切片索引:

    • 给定起始和终止位置
      >>> a[1:3]
      array([1, 2])
      
    • 不给定起始 or 终止位置,默认起始位置是0,终止位置是最后
      >>> a[:2]
      array([0, 1])
      >>> a[3:]
      array([3, 4])
      
  • 布尔索引:

>>> bool_idx = a > 3
>>> bool_idx
array([False, False, False, False,  True])
>>> a[bool_idx]
array([4])

or

>>> a[a > 3]
array([4])
>>> idx1 = a >=1 
>>> idx2 = a < 5
>>> idx = idx1 & idx2
>>> idx
array([False,  True,  True,  True,  True])
>>> a[idx]
array([1, 2, 3, 4])
  • 花式索引
    花式索引可以简单的理解为用一个数组做索引
>>> a[[0, 1, 3]]
array([0, 1, 3])

二维数组

扩展到二维数组:

>>> a = np.random.randint(0, 100, size=(8, 5))
>>> a
array([[15, 50, 21, 82, 19],
       [47, 57, 31, 31, 32],
       [20, 63, 58,  6, 64],
       [20, 23, 36, 42, 28],
       [94, 16, 66, 80, 13],
       [21, 37,  8, 52, 48],
       [67, 80, 38, 37,  3],
       [ 9, 93, 43, 72, 32]])
  • 单个数字索引
>>> a[2]
array([20, 63, 58,  6, 64])
>>> a[2, 3]
6
  • 切片索引
>>> a[:2]	# 行切片
array([[15, 50, 21, 82, 19],
       [47, 57, 31, 31, 32]])
>>> a[:, :1] # 列切片
array([[15],
       [47],
       [20],
       [20],
       [94],
       [21],
       [67],
       [ 9]])
>>> a[2:4, 1:3] # 行切片+列切片
array([[63, 58],
       [23, 36]])
  • 布尔索引
>>> idx1 = a > 90
>>> idx2 = a < 10
>>> idx = idx1 | idx2
>>> a[idx]
array([ 6, 94,  8,  3,  9, 93])
  • 花式索引
>>> a[[0, 3, 5, 2, 4]]
array([[15, 50, 21, 82, 19],
       [20, 23, 36, 42, 28],
       [21, 37,  8, 52, 48],
       [20, 63, 58,  6, 64],
       [94, 16, 66, 80, 13]])
>>> a[:, [0, 3, 2, 4]]
array([[15, 82, 21, 19],
       [47, 31, 31, 32],
       [20,  6, 58, 64],
       [20, 42, 36, 28],
       [94, 80, 66, 13],
       [21, 52,  8, 48],
       [67, 37, 38,  3],
       [ 9, 72, 43, 32]])
>>> a[[0, 2], [3, 4]]
array([82, 64])

未完待续…

本研究基于扩展卡尔曼滤波(EKF)方法,构建了一套用于航天器姿态与轨道协同控制的仿真系统。该系统采用参数化编程设计,具备清晰的逻辑结构和详细的代码注释,便于用户根据具体需求调整参数。所提供的案例数据可直接在MATLAB环境中运行,无需额外预处理步骤,适用于计算机科学、电子信息工程及数学等相关专业学生的课程设计、综合实践或毕业课题。 在航天工程实践中,精确的姿态与轨道控制是保障深空探测、卫星组网及空间设施建设等任务成功实施的基础。扩展卡尔曼滤波作为一种适用于非线性动态系统的状态估计算法,能够有效处理系统模型中的不确定性与测量噪声,因此在航天器耦合控制领域具有重要应用价值。本研究实现的系统通过模块化设计,支持用户针对不同航天器平台或任务场景进行灵活配置,例如卫星轨道维持、飞行器交会对接或地外天体定点着陆等控制问题。 为提升系统的易用性与教学适用性,代码中关键算法步骤均附有说明性注释,有助于用户理解滤波器的初始化、状态预测、观测更新等核心流程。同时,系统兼容多个MATLAB版本(包括2014a、2019b及2024b),可适应不同的软件环境。通过实际操作该仿真系统,学生不仅能够深化对航天动力学与控制理论的认识,还可培养工程编程能力与实际问题分析技能,为后续从事相关技术研究或工程开发奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值