当前位置: 首页 > article >正文

Python机器学习基础(NumPy、Pandas、Matplotlib)

Numpy函数库应用        

        NumPy 是 Python 中用于科学计算的核心库,它提供了高性能的多维数组对象以及用于处理这些数组的工具。

一、创建数组

1.使用array函数从 Python 列表或元组创建数组。

import numpy as np
a = np.array([1, 2, 3])
print(a)
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

2.使用特殊的函数创建特定形状的数组,如zerosonesempty等。

c = np.zeros((2, 3))
print(c)
d = np.ones((3, 3))
print(d)
e = np.empty((2, 2))
print(e)

二、数组属性

数组有一些属性可以获取其形状、大小、数据类型等信息。

  • ndim:数组的维度。
  • shape:数组的形状,是一个元组,表示每个维度的大小。
  • size:数组中元素的总数。
  • dtype:数组中元素的数据类型。

例如:

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim)
print(arr.shape)
print(arr.size)
print(arr.dtype)

三、数组索引和切片

1.索引:可以通过整数索引访问数组中的元素。

arr = np.array([1, 2, 3, 4, 5])
print(arr[2])

2.切片:可以使用切片操作访问数组的一部分。

arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4])

arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2d[1:, 1:])

四、数组运算

1.算术运算:可以对数组进行加、减、乘、除等算术运算。

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
print(a * b)
print(a / b)

2.数学函数:NumPy 提供了许多数学函数,如sincosexpsqrt等。

arr = np.array([1, 2, 3])
print(np.sin(arr))
print(np.cos(arr))
print(np.exp(arr))
print(np.sqrt(arr))

五、数组形状操作

reshape:可以改变数组的形状。

arr = np.array([1, 2, 3, 4, 5, 6])
print(arr.reshape(2, 3))

ravel:将多维数组展平为一维数组。

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ravel())

Pandas函数库应用

        Pandas 是一个用于数据处理和分析的强大 Python 库。它提供了高性能、易于使用的数据结构和数据分析工具。

一、创建数据结构

Series:一维数组,可以包含不同类型的数据,类似于一个带有索引的一维数组。

import pandas as pd

s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

DataFrame:二维表格数据结构,由行和列组成,可以包含不同类型的数据。

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
print(df)

二、读取和写入数据

  1. 读取数据:

    • 从 CSV 文件读取:pd.read_csv('filename.csv')
    • 从 Excel 文件读取:pd.read_excel('filename.xlsx')
  2. 写入数据:

    • 写入 CSV 文件:df.to_csv('filename.csv', index=False)
    • 写入 Excel 文件:df.to_excel('filename.xlsx', index=False)

三、数据查看和基本信息

  1. 查看数据的前几行或后几行:

    • df.head():查看前 5 行。
    • df.tail():查看后 5 行。
  2. 查看数据的基本信息:

    • df.info():显示数据的行数、列数、数据类型等信息。
    • df.describe():提供数值列的统计信息,如计数、均值、标准差等。

四、数据选择和索引

  1. 选择列:

    • 使用列名选择:df['column_name']df.column_name
    • 选择多个列:df[['column1', 'column2']]
  2. 选择行:

    • 使用整数索引选择:df.iloc[row_index]df.iloc[row_index_list]
    • 使用标签索引选择:df.loc[row_label]df.loc[row_label_list]
  3. 条件选择:

    • 根据条件选择行:df[df['column_name'] > value]

五、数据清洗和处理

  1. 处理缺失值:

    • df.dropna():删除包含缺失值的行或列。
    • df.fillna(value):用特定值填充缺失值。
  2. 数据转换:

    • 使用map函数进行映射:df['column_name'].map(function)
    • 使用apply函数对行或列进行操作:df.apply(function)
  3. 数据排序:

    • 按列排序:df.sort_values('column_name')
    • 按多个列排序:df.sort_values(['column1', 'column2'])

六、数据聚合和分组

  1. 聚合函数:

    • df.sum():求和。
    • df.mean():求均值。
    • df.median():求中位数等。
  2. 分组操作:

    • df.groupby('column_name').agg(function):对特定列进行分组并应用聚合函数。

例如:

grouped = df.groupby('City').mean()
print(grouped)

Matplotlib函数库应用

Matplotlib 是一个用于绘制数据可视化图表的 Python 库。

一、绘制简单图表

1.绘制折线图:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])

plt.plot(x, y)
plt.show()

2.绘制柱状图:

x = ['A', 'B', 'C', 'D']
y = [10, 15, 7, 12]

plt.bar(x, y)
plt.show()

3.绘制散点图:

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])

plt.scatter(x, y)
plt.show()

二、图表设置

1.添加标题、轴标签和图例:

x = np.array([1, 2, 3, 4, 5])
y1 = np.array([2, 4, 6, 8, 10])
y2 = np.array([1, 3, 5, 7, 9])

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.title('My Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.legend()

plt.show()

2.设置轴范围:

plt.xlim(0, 6)
plt.ylim(0, 12)

3.设置刻度和刻度标签:

xticks = [1, 2, 3, 4, 5]
xlabels = ['One', 'Two', 'Three', 'Four', 'Five']
plt.xticks(xticks, xlabels)


http://www.kler.cn/a/317988.html

相关文章:

  • 一文窥见神经网络
  • 【大数据学习 | HBASE高级】storeFile文件的合并
  • 机器学习总结
  • 假期增设:福祉与负担并存,寻求生活经济平衡之道
  • Unity3D学习FPS游戏(12)敌人检测和攻击玩家
  • 【C++】C++11特性(上)
  • 【CPP11?】结合CPP发展历史来理解CPP11
  • 代码随想录算法训练营Day14 | 226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
  • 【MySQL内置数据库】information_schema
  • 【C++】检测TCP链接超时——时间轮组件设计
  • 自学前端的正确姿势是...
  • 第17周 第2章Session与ServletContext原理 ---ServletContext与三大作用域对象
  • PerparedStatement概述
  • Qt 模型视图(三):视图类QAbstractItemView
  • Python常见Json对比库deepdiff、json_tools、jsonpatch
  • 【Python】curl命令、Api POST导入cURL、python直接使用cURL
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下
  • 球体检测系统源码分享
  • Rust的作用?
  • tar.gz 文件压缩与解压shell实现
  • 付费电表系统的通用功能和应用过程参考模型(下)
  • 鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)天气应用案例
  • R语言NHANES数据分析(2)
  • Angular面试题五
  • LeetCode_sql_day30(1264.页面推荐)
  • 蓝桥等考C++组-2022-11-27-八级