python 括号 数组,读取带双括号的numpy数组

本文讨论了在处理字符串数据时遇到的挑战,如缺失的逗号和多余的换行符,以及如何通过编辑、使用`eval`、`json.loads`或`ast.literal_eval`等方法将字符串转换为可解析的列表和数组。内容涉及字符串处理和数据解析在实际问题中的应用。
摘要由CSDN通过智能技术生成

[]的存在和,的缺失使得这类字符串的正常解析非常困难。不止一次,当我从一个SO问题中复制时,我只是咬紧牙关编辑了粘贴,这样它就可以解析了。在

使用loadtxt或{}需要删除{}。作为列表进行分析需要添加,。在

在本例中,将\n替换为,很容易。如果每行有多个数字,则需要更多的工作,将w/s替换为,。在In [252]: txt="[[ 1.62434536]\n [-0.61175641]\n [-0.52817175]\n [-1.07296862]\n [ 0.86540763]\n [-2.3015387 ]\n [ 1.74481176]\n [-0.7612069 ]\n [ 0.31 90391 ]\n [-0.24937038]\n [ 1.46210794]]"

为了使这个txt正确,我不得不编辑掉省略号。这是从你的粘贴,但在现实世界中,它可能是数组显示的一部分。在

^{pr2}$

一旦我有了,分隔的数据,我就可以用多种方式将其解析为一个列表,然后创建一个数组。在In [254]: eval(txt1)

Out[254]:

[[1.62434536],

[-0.61175641],

[-0.52817175],

...

[1.46210794]]

In [255]: np.array(_)

Out[255]:

array([[ 1.62434536],

[-0.61175641],

....

[ 1.46210794]])

在某些情况下,eval太强大了。json是更安全的列表解析器:In [256]: import json

In [257]: json.loads(txt1)

Out[257]:

[[1.62434536],

[-0.61175641],

....

[1.46210794]]

作为ast模块中的函数:In [258]: import ast

In [259]: ast.literal_eval(txt1)

Out[259]:

[[1.62434536],

[-0.61175641],

....

[1.46210794]]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
元胞数组是一种在Python编程语言使用的数据类型。元胞数组的重载函数被选择是因为元胞数组类型的二元运算符定义相对较少。此外,元胞数组括号在这种情况下很自然,因为反斜杠运算符具有非常高的优先级。因此,如果需要插入任何类型的数学表达式,无论如何,它很可能必须采用元胞数组的形式。 而Python元胞数组与变量引用机制有关,元组的列表是可变的。无论是元组还是列表,在拆包之后,不定长数据都是列表类型,即使是只有一个元素,也是列表类型,而不是元组类型。 这里是一个Python代码示例,演示了如何操作元胞数组: ```python from scipy.io import loadmat import pandas as pd import numpy # 读取训练数据和测试数据的标签 train_labels = pd.read_excel('训练.xlsx') test_labels = pd.read_excel('测试.xlsx') # 将标签转换为数组类型 train_labels = train_labels.to_numpy() test_labels = test_labels.to_numpy() # 读取训练数据和测试数据的图像 path = r"train.mat" data1 = loadmat(path) train_images = data1['B'] train_images = numpy.stack(train_images[:, 0], axis=0) train_images = numpy.expand_dims(train_images, axis=-1) path = r"test.mat" data2 = loadmat(path) test_images = data2['C'] test_images = numpy.stack(test_images[:, 0], axis=0) test_images = numpy.expand_dims(test_images, axis=-1) ``` 以上代码使用了`scipy.io`库来读取`.mat`文件,并将其的数据存储在元胞数组。然后,利用`numpy`库进行了一些数据操作和维度调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值