Python numpy.array详解:创建、读取与操作

需积分: 37 4 下载量 79 浏览量 更新于2024-09-08 收藏 1.04MB PDF 举报
"numpy.array函数简介" 在Python的科学计算库Numpy中,`numpy.array`是核心的构造函数,用于创建多维数组,也被称为数组对象或 Ndarray。Ndarray 是一种高效的数据结构,它能够存储同类型的元素,包括整数、浮点数、复数甚至字符串。`numpy.array` 函数允许我们以多种方式创建数组,并提供了丰富的操作和功能。 ### 创建数组 1. **基础创建**:通过列表或其他序列创建数组,如 `np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]], dtype=np.float)` 创建了一个3x4的浮点数数组。 2. **arange**:使用 `np.arange(start, stop, step)` 创建等差序列,例如 `np.arange(0, 1, 0.1)` 生成0到1(不包含1)之间,步长为0.1的数组。 3. **linspace**:`np.linspace(start, stop, num)` 创建等差序列,其中`num`是元素个数。如 `np.linspace(0, 1, 5)` 返回五个均匀间隔的点。 4. **logspace**:`np.logspace(start, stop, num)` 生成对数等比序列,如 `np.logspace(0, 1, 5)` 产生10的幂次方的等比序列。 5. **fromstring**:使用字符串创建数组,`np.fromstring(s, dtype=np.int8)` 把字符串`s`转换成整型数组。 6. **fromfunction**:`np.fromfunction(function, shape)` 根据给定的函数和形状生成数组。例如,`np.fromfunction(func2, (9, 9))` 用函数`func2`的值填充9x9的数组。 7. **ones** 和 **zeros**:`np.ones(shape)` 和 `np.zeros(shape)` 分别创建全1和全0的数组,如 `np.ones((2,2))` 和 `np.zeros((2,2))`。 ### 数组属性 - **dtype**:数组元素的数据类型,如 `np.array(..., dtype=np.float)` 指定为浮点型。 - **shape**:数组的维度和大小,可以通过 `.shape` 属性访问。例如,一个3x4数组的`.shape`为 `(3, 4)`。可以通过 `.reshape(new_shape)` 改变数组的形状,但需保证元素总数不变。 ### 数组操作 - **索引和切片**:数组的索引和切片操作与Python列表类似,但多维数组支持更复杂的切片,如 `arr[1:3, 2:]`。 - **布尔索引**:可以使用布尔数组或条件表达式(如 `arr > 0.5`)来选择满足条件的元素。 ### 其他知识点 - **内存共享**:通过切片或方法如 `reshape` 创建的新数组与原始数组共享内存,这意味着修改其中一个会影响另一个。 - **广播机制**:当进行数组运算时,如果两个数组的形状不匹配,Numpy会尝试“广播”较小的数组以适应较大的数组,以便进行计算。 - **ufuncs**:通用函数(Uniformed Function),如加法、乘法等,可以应用于整个数组,实现高效的向量化操作。 `numpy.array` 是Numpy库的基础,它提供了一种高效的方式来存储和处理大量数据,结合其他Numpy函数和方法,可以进行复杂的数值计算和数据分析。掌握 `numpy.array` 的使用对于任何需要处理大量数据的Python程序员都是至关重要的。