python——数据格式转换(数组、列表、字符串、Tensor等)

数组与其他类型相互转换

数组与列表互转(np.array与list)

  • 数组转列表(arr转list):np.array(a)
  • 列表转数组(list转arr):a.tolist()
import numpy as np
a=[1,2,3,4]
print(f"a的类型{
     type(a)}")
a_arr = np.array(a)
print(f"a_arr的类型{
     type(a_arr)}")
a_list=a_arr.tolist()
print(f"a_list的类型{
     type(a_list)}")
a的类型<class 'list'>
a_arr的类型<class 'numpy.ndarray'>
a_list的类型<class 'list'>

数组与字符串互转(np.arr与str)

数组转字符串(arr转str)

1.数组中存放的是字符串,使用join直接将数组中的元素直接拼接起来

import numpy as np
a = np.array(['a','b','c','d'])
s1 = ''.join(a) 
s2 = ' '.join(a)
s3 = ','.join(a)
s4 = ''.join(x for x in a)
print(f's1={
     s1},s2={
     s2},s3={
     s3},s4={
     s4}')
s1=abcd,s2=a b c d,s3=a,b,c,d,s4=abcd

2.数组中存放的是数字,先将数字转为str再使用join进行拼接

a = np.array([1,2,3,4])
s1 = ''.join(str(x) for x in a) 
s2 = ' '
### 数据转换的概念与方法 数据转换是指将一种形式的数据转化为另一种形式的过程,通常用于满足特定的应用需求或优化程序性能。以下是常见的数据转换方法及其具体实现: #### 1. **C#中的数据类型转换** 在C#中,数据类型的转换可以通过多种方式进行,包括但不限于隐式转换、显式转换、`Convert`类、字符串解析以及`ToString()`方法[^1]。 - **隐式转换** 隐式转换发生在无需额外操作即可完成的类型之间,例如从较小范围的数值类型到较大范围的数值类型(如 `int` 转换为 `long`)。这种转换不会丢失精度也不会引发异常。 - **显式转换** 显式转换需要开发者手动指定,可能涉及数据损失或抛出异常的情况。例如 `(double)myIntValue;` - **使用 Convert 类** C# 提供了一个名为 `Convert` 的静态类,可以方便地执行各种类型之间的转换。例如: ```csharp int intValue = Convert.ToInt32("123"); ``` - **字符串解析** 解析是一种通过字符串表示的形式将其转换为目标类型的常见方式。例如: ```csharp string str = "456"; int result = int.Parse(str); ``` - **ToString 方法** 将任意对象转换为其字符串表示形式的一种通用方法。几乎所有 .NET 对象都支持此功能。例如: ```csharp double d = 123.45; string s = d.ToString(); ``` --- #### 2. **文本文件转二维数组 (Array)** 对于处理结构化数据的任务,比如读取 `.txt` 文件并将其内容存储为二维数组,可以采用如下方法[^3]: 假设有一个简单的 CSV 格式的文本文件,每行代表一组记录,字段间由逗号分隔,则可通过以下代码实现其加载至二维数组的操作: ```csharp string filePath = @"example.txt"; // 假设这是路径名 List<string[]> lines = new List<string[]>(); using (StreamReader reader = new StreamReader(filePath)) { while (!reader.EndOfStream) { var line = reader.ReadLine(); // 按行读取 var values = line.Split(','); // 使用逗号作为分隔符拆分行 lines.Add(values); // 添加分割后的结果到列表 } } // 将 List 转换成 Array var arrayResult = lines.ToArray(); ``` 上述代码片段展示了如何逐行读入文件,并利用 `Split` 函数按自定义分隔符分解每一行的内容,最终形成一个二维字符串数组。 --- #### 3. **图像数据增强技术应用于数据集准备阶段** 除了传统的数值型数据外,在机器学习领域特别是计算机视觉方向上,还存在针对图像数据的预处理手段——即所谓的 *数据增强* 技术[^2]。这些技术不仅有助于扩充训练样本数量,还能有效缓解因数据不足而导致的过拟合现象。 一些典型的数据增强策略包括但不限于裁剪(Crop),随机水平翻转(Random Horizontal Flip),颜色抖动(Color Jittering),旋转(Rotation)等变换操作。下面给出一段 Python 中基于 PyTorch 库实现简单图像增广的例子: ```python import torchvision.transforms as transforms transform_pipeline = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1), transforms.ToTensor() ]) ``` 这里构建了一条流水线,依次应用不同的几何和色彩空间上的调整动作给输入图片施加影响,从而生成多样化的版本参与后续的学习过程。 --- ### 总结 无论是基础编程语言层面还是高级人工智能框架内部,数据转换都是不可或缺的一环。它贯穿整个开发周期的不同环节,从原始素材获取直至最后成果展示均有所体现。掌握好各类工具和技术能够显著提升工作效率及产品质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值