python中,如何把numpy类型(np.dnarray)转换为列表(list),及其在存储csv文件及数字图片识别中的应用

本文介绍如何将np.ndarray转换为list,并提供一个实用的示例。此外,还探讨了在数字识别项目中,如何整合标签和像素值,形成符合CSV格式的数据列表,便于神经网络训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把np.ndarray转换为list,很简单,只需要numpy的一个自带函数 nump.tolist()

import numpy as np
a = np.array([[1,2,3],[3,4,5]])
a = a.tolist()
print(a)
# 输出
[[1, 2, 3], [3, 4, 5]]

应用场景
数字识别
在用神经网络进行数字识别时,需要对神经网络进行训练,有时需要我们自己创建训练图片,存储图片的方法有很多,把他以标签和像素的形式存储在csv文件中不失为一个好的方法。这样可以对csv文件中的数据进行便利的读取和增加。

在这里我写了一个类其中的一个方法把标签和像数值进行整合得到符合此csv格式的数据列表

def integrate_data(self, pixel_values, labels):
        """
        考虑到识别数字大部分的项目,标签(及正确解的集合)和元素都是分开的
        这个方法把标签和像数值进行整合得到符合此csv格式的数据列表
        parameters
        ------
            pixel_values: list or np.ndarray
            labels: list or np.ndarray, [1,2,3,9,0]
        Return
        ------
            datas: 如果是一条数据就是一个列表否则就是一个包含列表的列表

        """
        # 先把参数全部转换为list
        if isinstance(pixel_values, np.ndarray):
            pixel_values = pixel_values.tolist()
        if isinstance(labels, np.ndarray):
            labels = labels.tolist()

        if len(labels) == 1:
            datas = labels + pixel_values
        else:
            datas = []
            i = 0
            while i < len(labels):
                datas.append([labels[i]] + pixel_values[i])
                i += 1
        return datas

大家如果有问题,或者我写的哪里有错误可以进行评论,我一定会尽我所能的回答和改正

处理txt文件数据并将其转换NumPy数组,最终保存为CSV或Excel格式,是数据处理中常见的需求。以下步骤和代码示例将指导你完成这一过程: 参考资源链接:[Python txt文件操作详解:读写方法与注意事项](https://wenku.csdn.net/doc/6401ad1bcce7214c316ee515?spm=1055.2569.3001.10343) 1. **读取txt文件**: 使用Python内置的`open()`函数打开txt文件,读取文件内容。可以逐行读取,并使用`split()`函数将每行分割成数据列表。 2. **数据转换**: 将分割后的数据列表转换NumPy数组。如果数据是数值型的,可以使用`np.array()`直接转换;如果是字符串类型,可能需要先转换为合适的数据类型。 3. **写入CSV或Excel**: 使用`np.savetxt()`函数将NumPy数组写入CSV文件,或者使用`pandas`库的`DataFrame.to_csv()`方法。对于Excel格式,可以使用`pandas`的`ExcelWriter`对象。 以下是具体的代码示例: ```python import numpy as np import pandas as pd # 读取txt文件 with open('data.txt', 'r') as *** *** [] for line in *** ***',') data_list.append([float(value) for value in values]) array_data = np.array(data_list) # 将NumPy数组保存为CSV np.savetxt('data.csv', array_data, delimiter=',', header='col1,col2,col3', comments='') # 使用pandas保存为Excel格式 df = pd.DataFrame(array_data) df.to_excel('data.xlsx', index=False) ``` 在上述代码中,首先读取了一个名为`data.txt`的文本文件,其中数据以逗号分隔。数据被分割并转换成浮点数,存储NumPy数组`array_data`中。然后使用`np.savetxt()`函数将数据保存为CSV文件。如果需要保存为Excel文件,可以使用`pandas`库来实现。 掌握了这些步骤后,你将能够有效地在Python中处理txt文件,并将其转换为其他格式用于数据分析和科学计算。为了进一步提升你的技能,建议阅读《Python txt文件操作详解:读写方法与注意事项》,这本书深入解析了txt文件操作的方方面面,是处理Python文本数据的实用指南。 参考资源链接:[Python txt文件操作详解:读写方法与注意事项](https://wenku.csdn.net/doc/6401ad1bcce7214c316ee515?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值