• 流行的Python库numpy及Pandas简要介绍


    numpy.ndarray 是NumPy库中的主要数据结构,它是一个多维数组,用于存储和操作数值数据。NumPy是Python中用于数值计算的强大库,numpy.ndarray 是它的核心数据类型,提供了高效的数值运算和广泛的数学函数。

    以下是 numpy.ndarray 的一些重要特点和功能:

    1. 多维数组numpy.ndarray 可以是一维、二维或多维的数组,这使得它非常适合处理各种复杂的数据。

    2. 数据类型numpy.ndarray 可以包含不同数据类型的元素,如整数、浮点数、布尔值等。每个数组都有一个固定的数据类型,可通过 dtype 属性获得。

    3. 广播:NumPy支持广播,这意味着可以对不同形状的数组执行元素级操作,而不需要显式循环。

    4. 矢量化操作:NumPy提供了各种数学、逻辑和统计函数,这些函数能够高效地应用于 numpy.ndarray 中的元素,而无需编写循环。

    5. 切片和索引:可以使用切片和索引操作从 numpy.ndarray 中选择和操作数据的子集。

    6. 数学运算:NumPy支持各种数学运算,包括加法、减法、乘法、除法、矩阵运算等。

    7. 随机数生成:NumPy包括随机数生成函数,用于生成随机数或随机数组。

    8. 数据统计:NumPy提供了各种统计函数,用于计算平均值、方差、标准差、最大值、最小值等。

    9. 线性代数:NumPy包括线性代数函数,用于矩阵操作、求解线性方程组等。

    10. 文件IO:可以使用NumPy读取和写入数据到磁盘,支持多种文件格式。

    下面是一个简单的示例,演示如何创建和操作 numpy.ndarray

    1. import numpy as np
    2. # 生成0到1之间的随机数,指定形状为(2, 3)
    3. random_nums = np.random.rand(2, 3)
    4. print("Random numbers from uniform distribution:")
    5. print(random_nums)
    6. # 生成标准正态分布的随机数,指定形状为(3, 4)
    7. random_normal = np.random.randn(3, 4)
    8. print("\nRandom numbers from standard normal distribution:")
    9. print(random_normal)
    10. # 生成整数随机数,范围在5到15之间,指定形状为(2, 2)
    11. random_integers = np.random.randint(5, 15, size=(2, 2))
    12. print("\nRandom integers between 5 and 15:")
    13. print(random_integers)
    14. # 生成均匀分布的随机数,范围在10到20之间,指定形状为(3,)
    15. random_uniform = np.random.uniform(10, 20, size=3)
    16. print("\nRandom numbers from uniform distribution:")
    17. print(random_uniform)
    18. # 生成符合正态分布的随机数,均值为2,标准差为3,指定形状为(14,)
    19. random_normal_custom = np.random.normal(loc=2, scale=3, size=14)
    20. print("\nRandom numbers from custom normal distribution:")
    21. print(random_normal_custom)
    22. # 从数组中随机选择元素,指定选择5次,允许重复选择,并指定概率分布
    23. choices = ['apple', 'banana', 'cherry', 'date']
    24. random_choices = np.random.choice(choices, size=5, replace=True, p=[0.2, 0.3, 0.4, 0.1])
    25. print("\nRandom choices:")
    26. print(random_choices)
    27. # 随机打乱数组的元素顺序
    28. arr = np.array([1, 2, 3, 4, 5])
    29. np.random.shuffle(arr)
    30. print("\nShuffled array:")
    31. print(arr)
    1. import numpy as np
    2. # 创建一个包含整数的等差数列
    3. arr = np.arange(start, stop, step)
    4. # 参数说明:
    5. # - start: 数列的起始值(包含在数列中)
    6. # - stop: 数列的结束值(不包含在数列中)
    7. # - step: 数列的步长(可选,默认为1)
    8. # 示例 1: 创建一个包含0到9的整数数列
    9. arr1 = np.arange(10)
    10. # 结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    11. # 示例 2: 创建一个包含2到8(不包含8)的整数数列,步长为2
    12. arr2 = np.arange(2, 8, 2)
    13. # 结果: [2, 4, 6]
    14. # 示例 3: 创建一个包含0到1的浮点数数列,步长为0.1
    15. arr3 = np.arange(0, 1, 0.1)
    16. # 结果: [0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
    1. import numpy as np
    2. arr = np.array([1, 2, 3, 4, 5])
    3. mean = np.mean(arr) # 计算平均值
    4. max_val = np.max(arr) # 找到最大值
    1. import numpy as np
    2. np.random.seed(42) # 设置种子为42
    3. random_numbers = np.random.rand(5) # 生成5个随机数
    4. print(random_numbers)
    5. random_int = np.random.randint(1, 100, 5) # 生成1到99之间的5个整数随机数
    6. random_uniform = np.random.rand(5) # 生成包含5个随机数的数组
    1. import numpy as np
    2. # 创建一个一维数组
    3. arr1 = np.array([1, 2, 3, 4, 5])
    4. # 创建一个二维数组
    5. arr2 = np.array([[1, 2, 3], [4, 5, 6]])
    6. # 访问数组元素
    7. print(arr1[0]) # 输出:1
    8. print(arr2[1, 2]) # 输出:6
    9. # 数学运算
    10. result = arr1 + 10
    11. print(result) # 输出:[11 12 13 14 15]
    12. # 切片
    13. sub_array = arr1[1:4]
    14. print(sub_array) # 输出:[2 3 4]
    15. # 统计运算
    16. mean_value = np.mean(arr1)
    17. print(mean_value) # 输出:3.0
    1. import numpy as np
    2. # 创建一个全零数组
    3. zeros_array = np.zeros((3, 4))
    4. # 创建一个全一数组
    5. ones_array = np.ones((2, 2))
    6. # 创建一个等差数列
    7. linspace_array = np.linspace(0, 1, 5) # 生成 [0. 0.25 0.5 0.75 1. ]
    8. # 创建一个随机数组
    9. random_array = np.random.rand(3, 3) # 生成一个3x3的随机数组
    1. import numpy as np
    2. arr = np.arange(12) # 创建一个包含0到11的一维数组
    3. # 将一维数组重塑为二维数组
    4. reshaped_arr = arr.reshape(3, 4)
    5. # 改变数组的形状,保持原数组不变
    6. flattened_arr = arr.flatten()
    1. import numpy as np
    2. # 生成服从正态分布的随机数
    3. random_numbers = np.random.normal(loc=0, scale=1, size=(3, 3))
    4. # 随机打乱数组的顺序
    5. arr = np.array([1, 2, 3, 4, 5])
    6. np.random.shuffle(arr)
    1. import numpy as np
    2. arr = np.array([1, 2, 3, 4, 5])
    3. # 使用条件表达式创建新数组
    4. new_array = np.where(arr > 2, arr, 0) # 大于2的元素保留,小于等于2的变为0
    1. import numpy as np
    2. # 创建一个示例数组
    3. data = np.array([[1, 2, 3], [4, 5, 6]])
    4. # 将数据写入文本文件(以逗号分隔)
    5. np.savetxt('data.txt', data, delimiter=',')
    6. # 将数据写入二进制文件
    7. np.save('data.npy', data)
    8. # 将数据写入压缩的二进制文件
    9. np.savez('data.npz', arr=data, arr2=data*2)
    1. import numpy as np
    2. # 从文本文件读取数据
    3. loaded_data = np.loadtxt('data.txt', delimiter=',')
    4. # 从二进制文件读取数据
    5. loaded_data_binary = np.load('data.npy')
    6. # 从压缩的二进制文件读取数据
    7. loaded_data_compressed = np.load('data.npz')
    8. data_array = loaded_data_compressed['arr']
    9. data_array2 = loaded_data_compressed['arr2']
    1. import numpy as np
    2. arr1 = np.array([1, 2, 3])
    3. arr2 = np.array([4, 5, 6])
    4. # 沿行方向堆叠两个数组
    5. stacked_array = np.vstack((arr1, arr2))
    6. # 沿列方向拼接两个数组
    7. concatenated_array = np.concatenate((arr1, arr2))

    Pandas(Python Data Analysis Library)是一个流行的Python库,用于数据处理和分析。它提供了高性能、易用的数据结构和数据分析工具,使得在Python中进行数据清洗、转换、分析和可视化变得更加容易。以下是Pandas的一些主要特点和功能:

    1. 数据结构:Pandas引入了两种主要的数据结构,DataFrameSeries

      • DataFrame 是一个二维表格数据结构,类似于电子表格或SQL表,可以容纳多种数据类型的列。每列可以有不同的数据类型。
      • Series 是一个一维标记数组,类似于带有标签的NumPy数组。
    2. 数据读取:Pandas可以轻松读取各种数据源,包括CSV、Excel、SQL数据库、JSON、HTML、以及Web API等。

    3. 数据清洗和处理:Pandas提供了丰富的数据操作功能,包括缺失值处理、数据合并、重塑、过滤、排序、分组和聚合等。

    4. 数据分析:Pandas支持各种数据分析任务,包括统计描述、数据可视化、时间序列分析、数据透视表等。

    5. 快速索引:Pandas的 DataFrameSeries 可以通过标签或位置进行快速的数据检索和索引。

    6. 灵活的数据可视化:Pandas结合了Matplotlib和Seaborn等可视化库,使得数据可视化变得容易。

    7. 数据导出:可以将清洗和分析后的数据导出到各种文件格式,包括CSV、Excel、SQL数据库等。

    8. 时间序列数据:Pandas对于处理时间序列数据非常强大,可以进行日期和时间的解析、滚动窗口计算等。

    9. 高性能:Pandas被设计为高性能数据处理工具,可以处理大型数据集。

    10. 广泛的社区支持:由于其流行和广泛使用,Pandas拥有庞大的社区支持和文档资源。

    以下是一个简单的示例,演示了如何使用Pandas创建和操作数据:

    1. import pandas as pd
    2. # 创建一个DataFrame
    3. data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
    4. 'Age': [25, 30, 35, 28, 22],
    5. 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Miami']}
    6. df = pd.DataFrame(data)
    7. # 显示DataFrame的前几行数据
    8. print("DataFrame:")
    9. print(df)
    10. # 获取DataFrame的基本信息
    11. print("\nDataFrame Info:")
    12. print(df.info())
    13. # 访问列
    14. print("\nAge Column:")
    15. print(df['Age'])
    16. # 添加新列
    17. df['Salary'] = [50000, 60000, 75000, 48000, 55000]
    18. # 数据过滤
    19. print("\nPeople younger than 30:")
    20. print(df[df['Age'] < 30])
    21. # 数据排序
    22. print("\nSorted by Age:")
    23. print(df.sort_values(by='Age'))
    24. # 数据聚合
    25. print("\nAverage Salary:")
    26. print(df['Salary'].mean())
    27. # 数据分组
    28. grouped = df.groupby('City')
    29. print("\nGrouped by City:")
    30. for city, group in grouped:
    31. print(city)
    32. print(group)
    33. # 数据导出为CSV文件
    34. df.to_csv('sample_data1.csv', index=False)
    35. # 从CSV文件导入数据
    36. imported_df = pd.read_csv('sample_data1.csv')
    37. print("\nImported DataFrame:")
    38. print(imported_df)
    1. import pandas as pd
    2. # 从CSV文件读取数据
    3. df = pd.read_csv('data.csv')
    4. # 从Excel文件读取数据
    5. df = pd.read_excel('data.xlsx')
    6. # 从SQL数据库读取数据
    7. import sqlite3
    8. conn = sqlite3.connect('database.db')
    9. query = "SELECT * FROM table_name"
    10. df = pd.read_sql_query(query, conn)
    1. # 选择DataFrame中的一列
    2. column = df['Column_Name']
    3. # 使用条件选择行
    4. filtered_df = df[df['Age'] > 25]
    5. # 使用iloc按位置选择数据
    6. selected_data = df.iloc[0:5, 1:3]
    1. # 处理缺失值
    2. df.dropna() # 删除包含缺失值的行
    3. df.fillna(value) # 填充缺失值为指定值
    1. # 数据排序
    2. sorted_df = df.sort_values(by='Column_Name', ascending=False)
    3. # 数据分组和聚合
    4. grouped = df.groupby('Category')
    5. mean_age = grouped['Age'].mean()
    1. # 将DataFrame保存为CSV文件
    2. df.to_csv('output_data.csv', index=False)
    3. # 将DataFrame保存为Excel文件
    4. df.to_excel('output_data.xlsx', index=False)

  • 相关阅读:
    windows驱动开发环境搭建以及helloworld
    matplotlib笔记
    WPS回应套娃式收费:AI功能投入比较大且福利期已到;Sam Altman辟谣下周发GPT-5和搜索引擎 | 极客头条
    Unity地面交互效果——3、曲面细分基础知识
    算法学习(一)—— 如何看待数据结构与算法
    解除OU屏蔽(EBS检查无法直接查询解决)
    Kotlin学习之密封类
    Java之HashMap和TreeMap
    UE4 回合游戏项目 05- 战斗场景-向指定敌人移动
    基于ClickHouse解决活动海量数据问题
  • 原文地址:https://blog.csdn.net/book_dw5189/article/details/133255764