numpy 的通用函数

本文介绍CSV文件格式的特点及用途,并详细讲解如何使用Python的numpy库中的loadtxt函数来解析CSV文件,包括参数说明及示例。

1 CSV文件

CSV,Comma Separate Values,是逗号分隔文件的缩写,是一种存储数据的纯文本格式,通常用于存储电子表格或数据库软件

特点

每条记录占一行

以逗号为分隔符

逗号前后的空格会被忽略

参考:CSV是什么文件格式

2 读取CSV文件

loadtxt函数解析CSV文件

loadtxt(文件名,分隔符,usecols=(列索引表),unpack=True,dtype=元素类型,converters={列索引号:转换函数})

 numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)[source]

    Load data from a text file.

fname - 可以是文件、字符串、文件路径,或是生成器;若文件为.gz 或 .bz2时,文件首先会被解压,若文件为生成器,则返回字节串(for Python 3K)

dtype - 数据类型,optional,默认时浮点型float

comments - 注释;字符串或列表类型,optional,默认#

delimiter - 分隔符;字符串类型,optional,默认空格

converters - 转换器,列(编号)映射(转换)函数调用,字典类型{列索引号:转换函数},optional,例如 converters = {0: datestr2num} 、 converters = {3: lambda s: float(s.strip() or 0)} 

skiprows - 跳过前几行,整型int,optional,默认0

usecols - 要读取的列,第一列为0,整型int 或 列表sequence,optional,默认值为空,意味读取所有列;例如,usecols = 2 意味读取第3列,usecols = (1,4,5)意味读取第2、5、6列

unpack - 若为True,将分列读取;如果False,行列式,把行当作基本单元读取,布尔类型bool,optional,默认为False

admin - 返回的数组将至少具有“ndmin”维度,合法值0(默认值)、1、2

返回值:ndarray,从text file 中读取的数据。

 

转载于:https://www.cnblogs.com/gengyi/p/9191663.html

### NumPy ufunc (通用函数) 的优势和特点 #### 1. 向量化操作提高效率 NumPy ufunc 支持向量化操作,这意味着可以在整个数组上执行运算而无需使用显式的 Python 循环。这种机制显著提高了计算速度并减少了代码复杂度[^2]。 ```python import numpy as np # 使用Python循环实现加法 def python_add(a, b): result = [] for i in range(len(a)): result.append(a[i] + b[i]) return result # 使用NumPy ufunc 实现相同功能 a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) result = a + b print(result) ``` #### 2. 广播机制增强灵活性 ufunc 还具备广播特性,允许不同形状的数组之间进行按元素的操作。这使得即使两个输入数组维度不完全匹配也可以顺利完成计算任务[^3]。 ```python # 不同大小数组间的乘法通过广播完成 arr_1d = np.arange(3) arr_2d = np.ones((3, 3)) broadcasted_result = arr_1d * arr_2d print(broadcasted_result) ``` #### 3. 内置优化提升性能表现 由于这些函数是在C语言级别实现的,所以它们能够提供比纯Python更快的速度以及更低级别的硬件资源访问能力。此外,许多常见的数学运算已经被高度优化过,在处理大规模数据集时尤为明显[^1]。 #### 4. 方便的数据类型转换支持 当涉及到不同类型之间的混合运算时,NumPy会自动尝试将较低精度类型的数值升级到较高精度类型来确保准确性。这一过程对于开发者来说几乎是透明化的,从而简化了编程流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值