python中数据处理相关库numpy的使用

一、numpy

numpy的基本使用方法

NumPy是Python中用于科学计算的基础包。它提供了一个高效的多维数组对象以及用于数组操作的函数。以下是NumPy的一些基本使用方法和示例代码。

1. 安装NumPy

如果你还没有安装NumPy,可以使用pip安装:

pip install numpy

2. 导入NumPy

导入NumPy库,通常使用缩写np

import numpy as np

3. 创建数组

3.1. 从列表创建数组
array_from_list = np.array([1, 2, 3, 4, 5])
3.2. 创建全零数组和全一数组
zeros_array = np.zeros((3, 3))  # 3x3的全零数组

ones_array = np.ones((2, 4))  # 2x4的全一数组

3.3. 创建指定范围的数组

range_array = np.arange(0, 10, 2)  # 从0到10(不包括10),步长为2
3.4. 创建线性空间数组
linspace_array = np.linspace(0, 1, 5)  # 从0到1,均匀分成5个数

4. 数组操作

4.1. 数组的形状
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape)  # 输出: (2, 3)
4.2. 改变数组形状
reshaped_array = array.reshape((3, 2))  # 重新塑造为3x2的数组
4.3. 数组的元素访问
print(array[0, 1])  # 访问第一行第二列的元素,输出: 2
4.4. 数组的切片
slice_array = array[:, 1]  # 选取所有行的第二列

5. 数组运算

5.1. 元素级运算
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
sum_array = array1 + array2
print(sum_array)  # 输出: [5 7 9]
5.2. 矩阵乘法
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
product_matrix = np.dot(matrix1, matrix2)
5.3. 广播机制
array = np.array([[1, 2, 3], [4, 5, 6]])
add_array = array + 1  # 每个元素加1

6. 常用函数

6.1. 数组求和和平均值
sum_value = np.sum(array)
print(sum_value)  # 输出: 21

mean_value = np.mean(array)
print(mean_value)  # 输出: 3.5
6.2. 最大值和最小值
max_value = np.max(array)
print(max_value)  # 输出: 6

min_value = np.min(array)
print(min_value)  # 输出: 1
6.3. 排序
sorted_array = np.sort(array, axis=0)  # 对每列进行排序

7. NumPy中的随机模块

random_array = np.random.rand(3, 3)  # 生成3x3的随机数组

random_int_array = np.random.randint(0, 10, size=(3, 3))  # 生成0到10之间的随机整数数组

8. 处理缺失值

array_with_nan = np.array([1, 2, np.nan, 4])
nan_sum = np.nansum(array_with_nan)  # 忽略NaN求和
print(nan_sum)  # 输出: 7.0

numpy在数据处理中的使用

NumPy在数据处理中的应用非常广泛,因其高效的多维数组对象和丰富的函数库,被广泛用于数据分析、科学计算和机器学习等领域。

1. 数据加载与存储

NumPy可以方便地从文件中加载和存储数据。

1.1. 从文本文件加载数据
import numpy as np

# 假设有一个数据文件data.txt,其中包含数字数据
data = np.loadtxt('data.txt', delimiter=',')
print(data)
1.2. 存储数据到文本文件
# 将数据保存到文件output.txt
np.savetxt('output.txt', data, delimiter=',')

2. 数据清洗

数据清洗是数据处理中重要的一环,包括处理缺失值、去除重复值、过滤噪声等。

2.1. 处理缺失值
data_with_nan = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])

# 计算忽略NaN的列平均值
col_mean = np.nanmean(data_with_nan, axis=0)
print(col_mean)

# 用列平均值填补NaN
inds = np.where(np.isnan(data_with_nan))
data_with_nan[inds] = np.take(col_mean, inds[1])
2.2. 去除重复值
data = np.array([[1, 2], [3, 4], [1, 2], [5, 6]])
unique_data = np.unique(data, axis=0)

3. 数据变换

数据变换包括标准化、归一化、排序、重塑等。

3.1. 数据标准化
data = np.array([[1, 2], [3, 4], [5, 6]])
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
standardized_data = (data - mean) / std
3.2. 数据归一化
min_val = np.min(data, axis=0)
max_val = np.max(data, axis=0)
normalized_data = (data - min_val) / (max_val - min_val)
3.3. 数据排序
sorted_data = np.sort(data, axis=0)

4. 数据聚合

数据聚合用于计算汇总统计量,如总和、平均值、最大值等。

4.1. 计算总和、平均值、最大值和最小值
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
total_sum = np.sum(data)
mean_value = np.mean(data)
max_value = np.max(data)
min_value = np.min(data)
print(f"Sum: {total_sum}, Mean: {mean_value}, Max: {max_value}, Min: {min_value}")
4.2. 按轴进行聚合计算
col_sum = np.sum(data, axis=0)  # 按列求和
row_mean = np.mean(data, axis=1)  # 按行求平均
print(f"Column Sum: {col_sum}, Row Mean: {row_mean}")

5. 数据合并与分割

NumPy提供了多种方式来合并和分割数组。

5.1. 数组合并
data1 = np.array([[1, 2], [3, 4]])
data2 = np.array([[5, 6], [7, 8]])

# 垂直合并
vstacked_data = np.vstack((data1, data2))
print(vstacked_data)

# 水平合并
hstacked_data = np.hstack((data1, data2))
print(hstacked_data)

5.2. 数组分割

data = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

# 水平分割
split_data = np.hsplit(data, 2)
print(split_data)

# 垂直分割
split_data = np.vsplit(data, 2)
print(split_data)

6. 高级数组操作

NumPy支持复杂的数组操作,如广播、矢量化计算等。

6.1. 广播
array = np.array([[1, 2, 3], [4, 5, 6]])
broadcast_array = array + np.array([1, 0, -1])
print(broadcast_array)
6.2. 矢量化计算
data = np.array([1, 2, 3, 4, 5])

# 普通循环计算平方
squared = []
for x in data:
    squared.append(x**2)
print(squared)

# 矢量化计算平方
vectorized_squared = np.square(data)
print(vectorized_squared)

以上只是NumPy在数据处理中的一些常见应用。NumPy功能强大,适用于各种数据处理任务。通过结合使用NumPy与其他数据处理工具(如Pandas),可以实现更加复杂和高效的数据处理工作,近期会补充一篇pandas的使用说明。

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值