python未知长度数组,python – 从具有未知维数的numpy数组中提取超立方体块
我有一些
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数组中提取超立方体块相关推荐
- 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所指定一维数组中.二 ...
- python文字转图片(二值、RGB)以及numpy数组
文字一般使用unicode等编码的形式在计算机中表示,但是其形态本身也很有价值.如果能够把文字转为图片,就可以做一些应用,比如: 基于最近邻查找来实现简单的OCR文字识别 从像素中提取特征用于机器学习 ...
- python布尔型数组_《Python数据分析》一2.10 用布尔型变量索引NumPy数组
本节书摘来自异步社区<Python数据分析>一书中的第2章,第2.10节,作者[印尼]Ivan Idris,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.10 ...
- c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt
<数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...
- python索引 自定义_python – 使用多个自定义索引范围构建numpy数组,而不显式循环...
在Numpy中,是否有一种pythonic方法来创建array3,其中自定义范围来自array1和array2而没有循环?迭代范围的直接解决方案有效,但由于我的数组遇到了数百万个项目,我正在寻找更有效 ...
- python数组每个元素加1_python-根据键转换numpy数组中的每个元素
我认为最好遍历字典,并"一次"在所有行和列中设置值: >>> a = np.array([[1,2,3],[3,2,1]]) >>> a arr ...
- 利用Python让工作更轻松 -项目学习实例之一,从文本文件中提取数据
王洪波 荣成市石岛实验中学 Python教学开展有几年的时间了,可是大多学生并不感兴趣,只是记了些语法,敲了教材上的代码,至于Python能干什么,学了Python有什么用,知之甚少.我们学习语言并不 ...
- 【python学习】批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件
批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件 Materials Studio在执行dmol3模块中结构优化任务时,任务结束后会产生一系列的输出文件 ...
- python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系
Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...
- c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...
在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...
最新文章
- 2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶 | 南京大学
- JS获取当前对象大小以及屏幕分辨率等...
- Linux下JNI实现
- ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证, onfocusin 清除错误
- linux学习笔记-(1)-安装
- jQuery入门第三天
- 【OpenCV】图像平滑
- Spark03:Spark安装部署【集群】:Standalone模式以及ON YARN模式
- 华为手机隐藏app图标_3秒钟轻松隐藏华为手机桌面图标!不需要下载安装第三方软件哦!...
- android 代码混淆 反编译,Android的反编译和代码混淆
- CVPR 2021 论文大盘点-去雾去模糊篇
- Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
- phantomjs selenium实现刷搜索引擎,刷百度来路,刷点击,真实有效果
- 魂系列联机服务器,黑暗之魂3 联机图文教程 新手联机指南 正版怎么联机_3DM单机...
- python3视频教学百度云盘_Python3自学基础到入门视频教程[百度云盘]
- MOCO: Momentum Contrast for Unsupervised Visual Representation Learning
- Arduino笔记实验(初级阶段)—Keypad小键盘
- vmware 14 安装window 7时,出现Network boot from Intel E1000
- Zookeeper分布式锁遇到惊群效应如何解决
- 520表白节 用代码写出你对女神的爱