我有一个尺寸为(2,3,4)的ndarray m.我想选择一个特定的维度索引并总结其他所有内容:

m[:, 2, :].sum()

但是我需要一个函数来处理元素选择,因为ndarray可以有不同的维度,并且总和应该跨越各个切片.该函数将采用维度(此处为0,1或2)和感兴趣的索引(0,1或2)并返回m [:,2,:].sum()如果输入为(1, 2).如果是(2,0),我希望它具有m [:,:0] .sum()的等价物.

我不知道如何编写这样的函数,这可以让我将切片“:”放入变量中?到目前为止,我还没有找到解决方案.谢谢!

解决方法:

您可以将slice:放入sl = slice(None,None,None)的变量中.然而,numpy有一个简写,np.s_[:]

整体然后:

def sum_axis_i(arr, axis, i):

idx = (np.s_[:],) * axis + (i,)

return arr[idx].sum()

请注意,尾随:s是多余的,因此我们不打扰创建它们.

如果你使用np.index_exp,它与np.s_非常相似,你可以写:

def sum_axis_i(arr, axis, i):

idx = np.index_exp[:] * axis + np.index_exp[i]

return arr[idx].sum()

标签:python,indexing,numpy

来源: https://codeday.me/bug/20190717/1488193.html

python多少维度_python – 选择一个ndarray的所有维度相关推荐

  1. python定义单位矩阵_python 实现一个反向单位矩阵示例

    python 实现一个反向单位矩阵示例 反向单位矩阵 单位矩阵即对角线为 1,如下: ​ 那么反向的单位矩阵就是反对角线为 1: ​ 左右镜像操作 这里采用 numpy 实现. 方案 1 import ...

  2. python 数组维度_python – 非常基本的Numpy数组维度可视化

    NumPy中ndarray的解剖结构如下所示:(来源: Physics Dept, Cornell Uni) 一旦离开2D空间并进入3D或更高维空间,行和列的概念就不再有意义了.但是你仍然可以直观地理 ...

  3. python游戏设计_Python设计一个猜大小游戏

    Python设计小游戏实例 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复 ...

  4. python 均值滤波_Python的一个骚操作

    PS作为世界四大发明之一可以说被广大网友用到了极致,只有你想不到的没有我P不了的,任何正经的图片在都可以变成搞笑图片(比如下图)当然也可以用ps做一点正经的事情. 作为一个爱折腾的程序猿能用代码的解决 ...

  5. python读取目录_Python读取一个目录下所有目录和文件

    本文实例讲述了Python读取一个目录下所有目录和文件的方法.分享给大家供大家参考,具体如下: 这里介绍的是刚学python时的一个读取目录的列子,给大家分享下: #!/usr/bin/python ...

  6. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  7. python dataframe创建_python 创建一个空dataframe 然后添加行数据的实例

    实例如下所示: import pandas as pd import re import math dframe1 = pd.read_excel("window regulator分析报告 ...

  8. python优先级排序_Python实现一个优先级队列的方法

    问题 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素 解决方案 下面的类利用 heapq 模块实现了一个简单的优先级队列: import heapq ...

  9. python整人程序_python—做一个恶搞程序

    python-做一个恶搞程序 very easy print("You can't win this game") #你不可能赢这个游戏 n = int(input("B ...

最新文章

  1. Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)
  2. SqlServer2000日志文件过大问题处理
  3. 皮一皮:颜值的重要。。。
  4. 为什么我使用 Linux 开发
  5. 文巾解题 45. 跳跃游戏 II
  6. 深入理解AbstractQueuedSynchronizer(AQS)
  7. ${oid?c}的使用
  8. mysql user表 空_mysql 忘记密码,重置密码,mysql.user表为空的解决办法
  9. java 字段构造函数_依赖注入–字段vs构造函数vs方法
  10. [BZOJ4537][Hnoi2016]最小公倍数 奇怪的分块+可撤销并查集
  11. 交换ctrl和左caps_如何在Linux中交换Ctrl和Caps Lock键
  12. 唯一可译码判断c语言_单片机基础实验数码管原理与C语言
  13. VCenter配置ESXI主机syslog日志收集
  14. RHEL4下刻录机使用--终端图形化方式
  15. 游戏筑基开发之贪吃蛇移动算法(C语言)
  16. java 发送支持超链接的邮件
  17. 【网络科普】NAS和SAN - 网络附加存储和存储区域网络
  18. Android开发环境搭建笔记总结
  19. 基于STM32开发的CO2浓度、温湿度、气压监测系统
  20. UG二次开发GRIP批量打开图纸

热门文章

  1. MySQL入门代码(附案例)
  2. 【公众号文章备份】你会喜欢慢下来的生活吗?
  3. linux向文件追加行并求和
  4. 【运维面试】帮你找到公司的业务及运维负责内容-面试前必看
  5. Task5.结构数组
  6. ig9icd64.dll引起的奔溃问题的解决
  7. 不小心被锁!物联卡锁卡机制与解锁方法,你不准备了解一下?
  8. html设置抽奖概率,求一个可挑概率的html5抽奖 圆盘的
  9. EDIUS抠图的教程
  10. delta并联机器人/delta机械手工作空间模型相关程序源码