我有一些

python代码,目前使用二维数组进行硬连接,如下所示:

import numpy as np

data = np.random.rand(5, 5)

width = 3

for y in range(0, data.shape[1] - W + 1):

for x in range(0, data.shape[0] - W + 1):

block = data[x:x+W, y:y+W]

# Do something with this block

现在,这是一个二维数组的硬编码,我想将其扩展到3D和4D数组.当然,我可以为其他维度编写更多函数,但我想知道是否有一个python / numpy技巧来生成这些子块而不必为多维数据复制此函数.

最佳答案 这是我对这个问题的嘲笑.下面代码背后的想法是找到每个数据片段的“起始索引”.因此,对于5x5x5阵列的4x4x4子阵列,起始索引将是(0,0,0),(0,0,1),(0,1,0),(0,1,1),(1 ,0,0),(1,0,1),(1,1,1),沿每个维度的切片长度为4.

要获取子数组,您只需迭代切片对象的不同元组并将它们传递给数组.

import numpy as np

from itertools import product

def iterslice(data_shape, width):

# check for invalid width

assert(all(sh>=width for sh in data_shape),

'all axes lengths must be at least equal to width')

# gather all allowed starting indices for the data shape

start_indices = [range(sh-width+1) for sh in data_shape]

# create tuples of all allowed starting indices

start_coords = product(*start_indices)

# iterate over tuples of slice objects that have the same dimension

# as data_shape, to be passed to the vector

for start_coord in start_coords:

yield tuple(slice(coord, coord+width) for coord in start_coord)

# create 5x5x5 array

arr = np.arange(0,5**3).reshape(5,5,5)

# create the data slice tuple iterator for 3x3x3 sub-arrays

data_slices = iterslice(arr.shape, 3)

# the sub-arrays are a list of 3x3x3 arrays, in this case

sub_arrays = [arr[ds] for ds in data_slices]

python未知长度数组,python – 从具有未知维数的numpy数组中提取超立方体块相关推荐

  1. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

  2. python文字转图片(二值、RGB)以及numpy数组

    文字一般使用unicode等编码的形式在计算机中表示,但是其形态本身也很有价值.如果能够把文字转为图片,就可以做一些应用,比如: 基于最近邻查找来实现简单的OCR文字识别 从像素中提取特征用于机器学习 ...

  3. python布尔型数组_《Python数据分析》一2.10 用布尔型变量索引NumPy数组

    本节书摘来自异步社区<Python数据分析>一书中的第2章,第2.10节,作者[印尼]Ivan Idris,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.10 ...

  4. c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt

    <数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...

  5. python索引 自定义_python – 使用多个自定义索引范围构建numpy数组,而不显式循环...

    在Numpy中,是否有一种pythonic方法来创建array3,其中自定义范围来自array1和array2而没有循环?迭代范围的直接解决方案有效,但由于我的数组遇到了数百万个项目,我正在寻找更有效 ...

  6. python数组每个元素加1_python-根据键转换numpy数组中的每个元素

    我认为最好遍历字典,并"一次"在所有行和列中设置值: >>> a = np.array([[1,2,3],[3,2,1]]) >>> a arr ...

  7. 利用Python让工作更轻松 -项目学习实例之一,从文本文件中提取数据

    王洪波 荣成市石岛实验中学 Python教学开展有几年的时间了,可是大多学生并不感兴趣,只是记了些语法,敲了教材上的代码,至于Python能干什么,学了Python有什么用,知之甚少.我们学习语言并不 ...

  8. 【python学习】批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件

    批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件 Materials Studio在执行dmol3模块中结构优化任务时,任务结束后会产生一系列的输出文件 ...

  9. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  10. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

最新文章

  1. 2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶 | 南京大学
  2. JS获取当前对象大小以及屏幕分辨率等...
  3. Linux下JNI实现
  4. ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证, onfocusin 清除错误
  5. linux学习笔记-(1)-安装
  6. jQuery入门第三天
  7. 【OpenCV】图像平滑
  8. Spark03:Spark安装部署【集群】:Standalone模式以及ON YARN模式
  9. 华为手机隐藏app图标_3秒钟轻松隐藏华为手机桌面图标!不需要下载安装第三方软件哦!...
  10. android 代码混淆 反编译,Android的反编译和代码混淆
  11. CVPR 2021 论文大盘点-去雾去模糊篇
  12. Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
  13. phantomjs selenium实现刷搜索引擎,刷百度来路,刷点击,真实有效果
  14. 魂系列联机服务器,黑暗之魂3 联机图文教程 新手联机指南 正版怎么联机_3DM单机...
  15. python3视频教学百度云盘_Python3自学基础到入门视频教程[百度云盘]
  16. MOCO: Momentum Contrast for Unsupervised Visual Representation Learning
  17. Arduino笔记实验(初级阶段)—Keypad小键盘
  18. vmware 14 安装window 7时,出现Network boot from Intel E1000
  19. Zookeeper分布式锁遇到惊群效应如何解决
  20. 520表白节 用代码写出你对女神的爱

热门文章

  1. 码农的自我修养 - ARM处理器天梯图
  2. Python从图片提取文字
  3. MOS电平转换电路 stm32的I2C电平转换电路 IIC电平转换电路
  4. 502 bad gateway原因、解决方法
  5. 基于 FPGA 的数字表示
  6. 恢复被文件夹病毒恶意隐藏的文件夹
  7. 矩阵论-线性空间与线性映射
  8. HTML+CSS大作业:旅游网页设计与实现——旅游风景网站6页HTML+CSS+JavaScript实训大作业 HTML+CSS大作业 HTML期末大作业
  9. vivo手机安装应用提示未安装
  10. 如何微信公众号中的视频保存下来