首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在for循环中构造numpy数组

在for循环中构造numpy数组
EN

Stack Overflow用户
提问于 2018-05-02 09:03:53
回答 2查看 705关注 0票数 2

我正在尝试从包含字典列表的python代码中加载一个数据库。对于列表中的每一项,字典包含一个文件的名称,一个子列表,它包含n个不同的字典,其中一个文件名和数据是一个大小为40x40x3的numpy矩阵,并对应于一个图像。我希望在一个for循环中将所有这些图像存储在一个大小为Nx40x40x3的numpy文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for item in dataset: 
    print item["name"] # the name of the list
    print item["data"] # a list of dictionaries
    for row in item["data"]:
      print row["sub_name"] # the name of the image
      print row["sub_data"] # contains an numpy array (my image) 

我是如何构造一个数字数组并添加所有图像的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-02 09:18:29

NumPy数组have fixed sizes,所以除非预先知道大小,否则必须使用一些可以更改大小的东西,比如python。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

images = []

for item in dataset:
    for row in item["data"]:
        images.append(row["sub_data"]) # Add to list

images = np.array(images) # Convert list to np.array()
票数 2
EN

Stack Overflow用户

发布于 2018-05-02 09:53:18

为了做到这一点,您要么需要使用大小可以像我在other answer中那样发生变化的数据类型,要么您也可以在定义数组之前计算出有多少图像。(如@P.Camilleri所建议)

这里有一个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Count nuber of images
idx_count = 0
for item in dataset:
    idx_count += len(item['data'])

# Create an empty numpy array that's Nx3x3
images = np.empty((count, 3, 3))

# Populate numpy array with images
idx = 0
for item in dataset:
    for row in item["data"]:
        images[idx] = row["sub_data"]
        idx += 1

print(images)

这样做的好处是您只分配了一次空间,用于使用python列表,首先将其添加到列表中,然后复制到numpy数组。

然而,这是以不得不重复两次数据为代价的。

(注:两种不同的答案,因为我不确定哪种解决方案更好,所以它们可以分开评定。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50139993

复制
相关文章
Numpy数组
一、NumPy简介 NumPy是针对多维数组(Ndarray)的一个科学计算(各种运算)包,封装了多个可以用于数组间计算的函数。 数组是相同数据类型的元素按一定顺序排列的组合,注意必须是相同数据类型的,比如说全是整数、全是字符串等。 array([1,2,3]) # 数值型数组 array(['w','s','q'],dtype = '<U1') # 字符型数组 二、NumPy 数组的生成 要使用 NumPy,要先有符合NumPy数组的数据,不同的包
见贤思齊
2020/08/05
4.9K0
Numpy数组
Numpy 中 axis = n 对应 ndarray 的第 nnn 层 [],从最外层的 axis = 0,逐渐往内层递增。
hotarugali
2022/03/03
7890
Numpy数组
SwiftU:在循环中创建视图
通常在一个循环中创建多个SwiftUI视图。例如,我们可能想要遍历一系列名称,并让每个名称成为文本视图,或者遍历一系列菜单项,并将每个名称显示为图像。
韦弦zhy
2020/03/20
2.2K0
numpy创建数组
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
全栈程序员站长
2022/06/26
1.6K0
numpy创建数组
Js 数组深拷贝及 splice() 在 for 循环中的使用整理、建议
背景 最近在涉猎 【React】 前端框架知识时; 更多的精力会放在对 JS 的数据处理上 并且, 在业务中会经常使用数组操作 显然, 对不熟悉前端开发的小伙伴,会很容易入坑的 ——
泥豆芽儿 MT
2021/09/06
2.4K0
numpy 数组操作
语法:numpy.arange([start, ] stop, [step, ]dtype=None)
foochane
2019/05/23
8450
Numpy 结构数组
在C语言中我们可以通过struct关键字定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,因此可以很容易地定义结构数组。和C语言一样,在NumPy中也很容易对这种结构数组进行操作。
用户6021899
2019/08/14
8750
Python Numpy 数组
NumPy(Numeric Python,以numpy导入)是一系列高效的、可并行的、执行高性能数值运算的函数的接口。numpy模块提供了一种新的Python数据结构——数组(array),以及特定于该结构的函数工具箱。该模块还支持随机数、数据聚合、线性代数和傅里叶变换等非常实用的数值计算工具。
smartsi
2019/08/07
2.4K0
numpy:数组比较
1、单条件 m=np.array([ [1,2,3], [10,20,30], [35,45,55] ]) n=(m==20) print(n) 输出 [[False False False] [False True False] [False False False]] col2=(m[:,1]==20) print(col2) 输出 [False True False] print(m[col2,:]) 输出true值的那一行数据 [[10 20 30]] 2、多条件 v
程裕强
2019/10/24
1.5K0
NumPy 最详细教程(1):NumPy 数组
Numpy 是 Python 中科学计算的核心库,NumPy 这个词来源于 Numerical 和 Python 两个单词。它提供了一个高性能的多维数组对象,以及大量的库函数和操作,可以帮助程序员轻松地进行数值计算,广泛应用于机器学习模型、图像处理和计算机图形学、数学任务等领域。
丹枫无迹
2019/03/20
3.6K0
在向量化NumPy数组上进行移动窗口操作
今天很有可能你已经做了一些使用滑动窗口(也称为移动窗口)的事情,而你甚至不知道它。例如:许多编辑算法都是基于移动窗口的。在GIS中做地形分析的大多数地形栅格度量(坡度、坡向、山坡阴影等)都基于滑动窗口。很多情况下,对格式化为二维数组的数据进行分析时,都很有可能涉及到滑动窗口。
deephub
2021/01/25
1.9K0
3-Numpy数组
首先让我们讨论一些有用的数组属性。我们将从定义三个随机数组开始,分别是一维,二维和三维数组。我们将使用NumPy的随机数生成器,我们将使seed设置初始值,以确保每次运行此代码时都生成相同的随机数组:
用户1418372
2020/03/20
1.1K0
numpy 数组拼接方法
方法一: 转为list,使用“+”, append()或者extend() 可做简单的拼接。不过要注意一些小问题,如下图:
全栈程序员站长
2022/08/23
1.1K0
numpy 数组拼接方法
numpy之数组基础
展平 ravel 只显示变为一维数组的视图 flatten将多维数组变成一维数组后保存结果
用户7886150
2020/12/25
2.3K0
numpy入门-数组运算
对数组做基本的算术运算,将会对整个数组的所有元组进行逐一运算,并将运算结果保存在一个新的数组内,而不会破坏原始的数组 数组和向量之间的运算 数组和数组之间的运算 通用函数的使用 数组和向量之间的运算 import numpy as np a = np.array([20,40,50,80]) b = np.arange(4) print(a) print(b) [20 40 50 80] [0 1 2 3] c = a - b c array([20, 39, 48, 77]) b**2 # 每
皮大大
2021/03/02
1.1K0
Numpy:掩膜数组
所谓掩膜数组是指数据和掩膜共同构成的数组。这里的数据通常是指不完整或包含缺省值的数据。对于完整的数据来说也不需要转换为掩膜数组。掩膜是指用来将数据中不完整或包含缺省值的的地方给遮住。被遮住的部分就不再参与后续运算。
bugsuse
2020/04/21
2.8K0
enumerate 遍历numpy数组
enumerate 遍历numpy数组 遍历一维数组 i,j 分别表示数组的 索引 和 存储的值 import numpy as np a=np.array([1,2,3,4]) b=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) for i,j in enumerate(a): print("i",i,"j",j) # i 0 j 1 # i 1 j 2 # i 2 j 3 # i 3 j 4 遍历二维数组 i,j 分别表示数组的 行的索引 和 每一行中
演化计算与人工智能
2020/08/14
1.5K0
numpy入门-数组创建
Numpy 基础知识 Numpy的主要对象是同质的多维数组。Numpy中的元素放在[]中,其中的元素通常都是数字,并且是同样的类型,由一个正整数元组进行索引。 每个元素在内存中占有同样大小的空间。在Numpy中,维度被称为轴。例如对于[1, 2, 1]有一个轴,并且长度为3。而[[ 1., 0., 0.], [ 0., 1., 2.]]则有两个轴,第一个轴的长度为2,第二个轴的长度为3。 Numpy数组类的名字叫做ndarray,经常简称为array。要注意将numpy.array与标准Python库中的a
皮大大
2021/03/02
1.1K0
使用数组作为索引遍历numpy数组
python使用数组作为索引遍历数组 import numpy as np a=np.arange(0,5) print(a) # [0 1 2 3 4] b=np.arange(0,10).reshape(5,2) print(b) # [[0 1] # [2 3] # [4 5] # [6 7] # [8 9]] # 将一维数组作为二维数组的索引 c0=b[a][:,0] print(c0) # [0 2 4 6 8] c1=b[a][:,1] print(c1) # [1 3 5 7 9
演化计算与人工智能
2020/08/14
2.5K0
Dart:在循环中使用 Async 和 Await
在 Dart(以及 Flutter)中,您可以使用Future.forEach在循环中顺序执行同步操作。下面的示例程序将打印从 1 到 10 的数字。每次打印完一个数字,它会等待 3 秒,然后再打印下一个数字。
徐建国
2022/04/27
1.7K0
Dart:在循环中使用 Async 和 Await

相似问题

在for循环中连接numpy数组

20

在循环中修改NumPy数组

30

在循环中组合numpy数组

13

在for循环中连接numpy数组

120

在for循环中创建numpy数组

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文