numpy的基本用法
时间: 2025-01-04 18:16:47 浏览: 5
### 关于 NumPy 的基本用法
#### 创建数组
NumPy 中的核心对象是 `ndarray`,即 n 维数组。可以通过多种方式创建这种类型的数组:
```python
import numpy as np
# 使用 Python 列表来构建一维数组
arr_from_list = np.array([1, 2, 3])
# 构建二维数组
two_dim_arr = np.array([[1, 2], [3, 4]])
# 创建全零矩阵
zeros_matrix = np.zeros((3, 4))
# 创建单位阵
identity_matrix = np.eye(3)
# 创建指定范围内的等间距数值序列
range_array = np.arange(start=0, stop=10, step=2)
```
#### 数组属性
了解如何查询和设置数组的一些重要特性对于有效利用这些数据结构至关重要。
- 形状 (shape):表示各维度长度的元组。
- 秩 (rank) 或者轴的数量 (`ndim`) :指明有多少个维度。
- 大小 (size) : 所有元素总数目。
- 数据类型 (`dtype`) : 存储的数据种类。
```python
print(f"Array shape: {two_dim_arr.shape}")
print(f"Number of dimensions: {two_dim_arr.ndim}")
print(f"Total number of elements: {two_dim_arr.size}")
print(f"Data type of each element: {two_dim_arr.dtype}")
```
#### 基础操作
执行简单的数学运算以及统计分析也是 NumPy 功能的一部分。
```python
# 对两个相同尺寸的一维向量做四则运算
vector_a = np.array([7, 8])
vector_b = np.array([9, 10])
addition_result = vector_a + vector_b # 加法
subtraction_result = vector_a - vector_b # 减法
multiplication_result = vector_a * vector_b # 逐元素相乘
division_result = vector_a / vector_b # 浮点除法
# 获取最大值最小值及其位置
max_value_index = two_dim_arr.argmax()
min_value_along_axis_0 = two_dim_arr.min(axis=0)[^1]
# 广播机制允许不同形状之间的计算
scalar_addition = two_dim_arr + 5 # 将常数加到每一个元素上去
broadcasted_multiplication = two_dim_arr * [[2]] # 自动扩展较小的操作数以匹配较大者的形状
```
#### 文件 I/O 和内存映射
当处理非常大的数据集时,可能无法一次性加载全部内容到 RAM 中;这时就可以考虑使用内存映射技术。
```python
# 写入二进制文件并读取回来
np.save('my_file.npy', range_array)
loaded_data = np.load('my_file.npy')
# 如果有一个很大的 CSV 文件想要部分加载的话...
data_memmap = np.memmap('large_dataset.dat', dtype='float32', mode='w+', shape=(1e6,))
data_memmap[:] = np.random.rand(int(1e6))[:]
del data_memmap # flush changes to disk and close the file
existing_mmap = np.memmap('large_dataset.dat', dtype='float32', mode='r', shape=(1e6,))[^4]
```
阅读全文