Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将.txt数据加载到10x256三维numpy数组中

将.txt数据加载到10x256三维numpy数组中
EN

Stack Overflow用户
提问于 2014-08-24 18:54:58
回答 2查看 748关注 0票数 1

我正在尝试将一些文本文件加载到numpy数组中。.txt文件表示图像的像素,其中每个像素的相对坐标为-10和+10 ( x),0和10为y,图像总计为10x256像素。问题是每个像素没有被赋予一个RGB值,而是给出一个与第一个/n分隔的“报头”中的波长值相对应的强度列表。每个坐标都被指定为第一个选项卡分隔的项,第一个条目只有" 0“,因为文本文件的格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Line 1: "0 0  625.15360  625.69449  626.23538 ..." (two coordinates followed by the wavelengths)
Line 2: "-10.00000  -10.00000   839   841   833   843   838   847 ..."
Line 3: "-10.00000   -9.92157   838   839   838 ..."

其中,839和838表示两个不同相邻像素的波长625.15360的强度,其中一个位于另一个像素之上(y的变化很小)。此外,841和839将是625.69449波长的强度,等等。

到目前为止,我的推理是使用np.genfromtxt()迭代文件,并向一个新数组中添加一个3D numpy数组,每个变量(x、y、lambda)都分配一个单一的强度值。另外,我认为如果x和y分别从0-9和0-255之间,而不是数据中给定的任意相对坐标,来表示图像,那就更有意义了。

问题:我不知道如何将数据加载到一个3x3 (卡在计算出2x2),我似乎不能正确地切片.

到目前为止我所拥有的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
intensity_array2 = np.zeros([len(unique_y),len(unique_x)], dtype= int)

for element in np.nditer(intensity_array2, op_flags=['readwrite']):
    for i in range(len(unique_y)):
        for j in range(len(unique_x)):
            with open(os.path.join(path_name,right_file)) as rf:
                intensity_array2[i,j] = np.genfromtxt(rf, skip_header = (i*j)+j, delimiter = " ")

在上面的函数中可以找到len(unique_y) = 10len(unique_x) = 256

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-25 23:34:12

在Lukeclh回答的基础上,尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = np.genfromtxt(rf)

然后,剔除波长值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wavelengths = data[0]
intensities = data[1:]

我们现在可以使用reshape重新排列数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
intensitiesshaped = np.reshape(intensities, (len(unique_x),len(unique_y),-1))

"-1“值表示‘其余的放在这里’。

我们仍然有(在每个数组上)的领先值。为了修剪它们,我们可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wavelengths = wavelengths[2:]
intensitiesshaped = intensities[:,:,2:]

这只是将前两个索引中的信息抛出一边。如果你需要保留它,你将不得不做一些更复杂的事情。

票数 0
EN

Stack Overflow用户

发布于 2014-08-25 19:00:11

我不确定我完全理解你的文件格式,所以如果这没有意义,请原谅我。但是,如果有任何方法可以同时加载所有数据,我相信它会运行得更快。在我看来,您可以使用它将所有数据输入内存:

data = np.genfromtxt(rf,定界符=“")

然后创建3D数组:

intensity_array2 = np.zeros ( 10,256,num_wavlengths)

然后填写3D数组的值:

intensity_array2[ data:,0,data:,1,:] = data:,2:

这不完全是因为x和y索引可能为负值--在这种情况下,您可能需要添加一个偏移量。另外,如果输入文件的格式是可预测的,那么您可以简单地调用数据矩阵上的np.reshape()来获取所需的内容。

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

https://stackoverflow.com/questions/25478428

复制
相关文章
python 将读取的数据写入txt文件_c中怎样将数据写入txt文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.4K0
Python将数据写入txt文件_python将内容写入txt文件
readlines() 会把每一行的数据作为一个元素放在列表中返回,读取所有行的数据
全栈程序员站长
2022/11/11
12.5K0
Numpy中的数组维度
在对 np.arange(24)(0, 1, 2, 3, ..., 23) 进行重新的排列时,在多维数组的多个轴的方向上,先分配最后一个轴(对于二维数组,即先分配行的方向,对于三维数组即先分配平面的方向)
benym
2022/07/14
1.6K0
Python中numpy数组切片
Python中符合切片并且常用的有:列表,字符串,元组。 下面那列表来说明,其他的也是一样的。 格式:[开头:结束:步长] 开头:当步长>0时,不写默认0。当步长<0时,不写默认-1 结束:当步长>0时,不写默认列表长度加一。当步长<0时,不写默认负的列表长度减一 步长:默认1,>0 是从左往右走,<0是从右往左走 遵循左闭右开原则,如:[0:9]等价于数学中的[0,9)
狼啸风云
2020/12/18
3.3K0
Python中numpy数组切片
python读取txt文件中的数组
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139543.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/23
4K0
Python将图片输出为二维数组并保存到txt中
使用Python将图片输出为二维数组,并保存到txt文件中。代码如下:# coding=utf8from PIL import Imageimport numpy as npfrom scipy import miscimport matplotlib.pyplot as pyplot #读图片def loadImage(): im = Image.open("0001.jpg") #读取图片 im.show() #显示原图 im = im.c
代码的路
2022/06/18
2.1K0
如何将NumPy数组保存到文件中以进行机器学习
祝大家新年快乐,今天看到的文章然后就翻译了一下,涉及到的技术点都很简单,算是一篇水文,而且我对文章的改动比较大,但是还希望能给你带来一点帮助。
PM小王
2020/01/15
7.8K0
将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112640.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
1.8K0
将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…
numpy中数组的遍历技巧
在numpy中,当需要循环处理数组中的元素时,能用内置通函数实现的肯定首选通函数,只有当没有可用的通函数的情况下,再来手动进行遍历,遍历的方法有以下几种
生信修炼手册
2020/06/17
12.5K0
Taro中如何将store加载到项目中
上面文章我们了解了如何创建store,最后导出时,在函数内部创建了store,所以导出时,函数需要调用,然后通过provicer组件将其注入到项目中。
挥刀北上
2022/05/11
7650
Taro中如何将store加载到项目中
numpy中的掩码数组
numpy中有一个掩码数组的概念,需要通过子模块numpy.ma来创建,基本的创建方式如下
生信修炼手册
2020/06/10
1.9K0
将多个txt文件中的内容写在一个txt中的方法
import os filename='./train_data/img_' for i in range(1,19736): newfile=filename+str(i)+'.txt' if os.path.exists(newfile): read= open(newfile, 'r') for line in read: writ = open('recode.txt', 'a') writ.write(
陶陶name
2022/05/13
3.4K0
python 将一个txt文件数据,按要求分开,写入多个txt文本中
matinal
2023/10/13
2780
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数组
Python 将数据写入文件(txt、csv、excel)
一、将列表数据写入txt、csv、excel 1、写入txt def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file = open(filename,'a') for i in range(len(data)): s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择 s = s.replace
菲宇
2019/07/31
41.3K0
numpy中数组操作的相关函数
在numpy中,有一系列对数组进行操作的函数,在使用这些函数之前,必须先了解以下两个基本概念
生信修炼手册
2020/06/17
2.1K0
Python中numpy数组的拼接、合并
np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() 其中最泛用的是第一个和第二个。第一个可读性好,比较灵活,但是占内存大。第二个则没有内存占用大的问题。
全栈程序员站长
2022/07/02
3.2K0
Python数据分析(3)-numpy中nd数组的创建
摘要总结:本文主要介绍了NumPy(Numerical Python)中的一些数据结构和常用函数。主要包括:数组(array)、矩阵(matrix)、数组操作相关函数、矩阵操作相关函数、NumPy的子库numpy.core和numpy.lib等。通过这些函数,我们可以方便地进行数值计算、线性代数、傅里叶变换等操作,是进行科学计算和数据处理的重要工具。
锦小年
2018/01/02
2K0
Python数据分析(3)-numpy中nd数组的创建
点击加载更多

相似问题

将txt文件加载到numpy数组中

10

将txt文件数据加载到numpy数组中/获取错误

13

将数据保存到三维numpy数组中

21

将数组从txt加载到html数据

17

将数据从csv加载到numpy数组

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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