Python学习之路(数据类型

Python学习之路(数据类型)

第一篇技术博文纪念。我写这篇博文的原因是因为本人在利用python处理试验数据的时候,往往因为数据类型往往理不清,导致bug频出,因此打算写下此博文作为技术学习的milestone。(代码大部分均利用ChatGPT进行整理),它能够很好的帮我整理了解资料内容,好了废话就说到这。上菜!!!

python的数据类型

Python 中的几种常见的数据类型:

  1. 整数(int):表示整数值,例如:42。
  2. 浮点数(float):表示带有小数部分的数值,例如:3.14。
  3. 字符串(str):表示文本数据,使用引号(单引号或双引号)括起来,例如:“Hello, World!”。
  4. 布尔值(bool):表示真或假的值,只有两个可能的取值:True 或 False。
  5. 列表(list):表示有序的可变集合,可以包含不同类型的元素,用方括号括起来,例如:[1, 2, 3]。
  6. 元组(tuple):表示有序的不可变集合,可以包含不同类型的元素,用圆括号括起来,例如:(1, 2, 3)。
  7. 集合(set):表示无序的唯一元素的集合,用花括号括起来,例如:{1, 2, 3}。
  8. 字典(dict):表示键值对的无序集合,用花括号括起来,并使用冒号分隔键值对,例如:{“name”: “Alice”, “age”: 25}。

此外,Python 还支持其他一些高级的数据类型,如日期时间(datetime)、字节串(bytes)等。还可以使用各种库和模块来处理更复杂的数据类型,例如 NumPy 数组、Pandas 数据帧等。

1.List数据类型的操作

# 创建列表
my_list = [1, 2, 3, 4, 5]
print("原始列表:", my_list)

# 访问元素
print("第一个元素:", my_list[0])

# 修改元素
my_list[2] = 10
print("修改后的列表:", my_list)

# 添加元素
my_list.append(6)
print("添加元素后的列表:", my_list)

my_list.insert(2, 7)
print("插入元素后的列表:", my_list)

# 删除元素
my_list.remove(10)
print("删除指定元素后的列表:", my_list)

del my_list[0]
print("删除指定索引处元素后的列表:", my_list)

# 切片操作
slice_list = my_list[1:4]
print("切片后的列表:", slice_list)

# 列表长度
length = len(my_list)
print("列表长度:", length)

在 Python 中,数组(列表)的索引是从0开始的,而不是从1开始。

这意味着,如果你有一个长度为n的数组,它的索引范围是从0到n-1。第一个元素的索引是0,第二个元素的索引是1,依此类推(我的理解list是以方括号的形式呈现}

2.元祖tuple

是在 Python 中用于存储多个元素的有序且不可变的数据类型。
元组使用圆括号 () 来表示,并且每个元素之间用逗号 , 分隔。

以下是元组常用的操作示例:

  1. 创建元组:
my_tuple = (1, 2, 3, 4, 5)  # 创建一个包含整数的元组
my_tuple2 = ('apple', 'banana', 'cherry')  # 创建一个包含字符串的元组
my_tuple3 = (1, 'apple', True)  # 创建一个包含不同类型元素的元组
  1. 访问元素:
print(my_tuple[0])  # 输出元组中的第一个元素,索引从 0 开始,输出:1
print(my_tuple2[1])  # 输出元组中的第二个元素,输出:banana
  1. 元组是不可变的,意味着不能修改元组中的元素。例如,以下操作将引发 TypeError 错误:
my_tuple[2] = 10  # 尝试修改元组中的元素,会引发 TypeError 错误
  1. 元组长度:
length = len(my_tuple)  # 获取元组的长度
print(length)  # 输出元组的长度:5
  1. 元组拆包:
a, b, c = my_tuple2  # 将元组中的元素分配给变量
print(a)  # 输出拆包后的第一个元素:apple
print(b)  # 输出拆包后的第二个元素:banana
print(c)  # 输出拆包后的第三个元素:cherry
  1. 元组可以作为字典的键:
my_dict = {(1, 2): 'value'}  # 使用元组作为字典的键
print(my_dict[(1, 2)])  # 输出对应的值:value

元组的主要特点是它是不可变的,一旦创建就不能修改。因此,元组没有像列表那样的修改、添加或删除元素的方法。元组在需要存储一组固定数据的场景中非常有用,例如用于表示坐标、日期时间等不可变数据。

3.Numpy数组

NumPy(Numerical Python)是一个用于科学计算和数据处理的 Python 库,它提供了高性能的多维数组对象(ndarray)以及对数组进行操作的各种函数。NumPy 数组是一个固定大小的元素网格,所有元素都是相同类型的。

下面是 NumPy 数组的一些常见操作示例:

  1. 导入 NumPy 库:
import numpy as np
  1. 创建 NumPy 数组:
# 从列表创建数组
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)

# 创建多维数组
my_2d_array = np.array([[1, 2, 3], [4, 5, 6]])
print(my_2d_array)
  1. 访问数组元素:
print(my_array[0])  # 访问数组中的第一个元素
print(my_2d_array[1, 2])  # 访问二维数组中的特定元素
  1. 数组形状和尺寸:
print(my_array.shape)  # 输出数组的形状
print(my_2d_array.shape)  # 输出二维数组的形状
print(my_array.size)  # 输出数组的大小(元素个数)
  1. 修改数组元素:
my_array[2] = 10  # 修改数组中的元素
print(my_array)

my_2d_array[1, 2] = 20  # 修改二维数组中的元素
print(my_2d_array)
  1. 数组运算:
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

sum_array = array1 + array2  # 数组相加
print(sum_array)

product_array = array1 * array2  # 数组相乘
print(product_array)

mean_value = np.mean(array1)  # 计算数组的平均值
print(mean_value)

这些只是 NumPy 数组的一些基本操作示例。NumPy 还提供了丰富的功能,包括索引和切片、数组重塑、数组拼接、数学函数、线性代数运算等。通过这些操作,你可以高效地处理和操作数组数据。可以通过安装 NumPy 库,并参考 NumPy 官方文档来获取更详细的操作说明和示例代码。
除了上述提到的基本操作外,NumPy 还提供了许多其他有用的数组操作。以下是一些常见的 NumPy 数组操作示例:

  1. 数组切片和索引:
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[1:4])  # 切片操作,提取索引 1 到索引 3 的元素(不包括索引 4)
print(my_array[[0, 2, 4]])  # 使用索引数组进行索引,输出指定索引处的元素
  1. 数组形状操作:
my_array = np.array([[1, 2, 3], [4, 5, 6]])
print(my_array.shape)  # 输出数组的形状
print(my_array.ndim)  # 输出数组的维度
print(my_array.size)  # 输出数组的大小(元素个数)
print(my_array.reshape(3, 2))  # 重塑数组形状
  1. 数组拼接和分割:
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
print(np.concatenate([array1, array2]))  # 数组拼接
print(np.vstack([array1, array2]))  # 垂直堆叠数组
print(np.hstack([array1, array2]))  # 水平堆叠数组
print(np.split(array1, 3))  # 将数组分割为多个子数组
  1. 数组统计和数学函数:
my_array = np.array([1, 2, 3, 4, 5])
print(np.min(my_array))  # 数组最小值
print(np.max(my_array))  # 数组最大值
print(np.sum(my_array))  # 数组元素求和
print(np.mean(my_array))  # 数组平均值
print(np.std(my_array))  # 数组标准差
print(np.exp(my_array))  # 对数组元素进行指数运算

这些仅是 NumPy 数组的一些常见操作示例,NumPy 还提供了许多其他功能,如数组排序、线性代数运算、随机数生成、布尔运算等。你可以参考 NumPy 官方文档或其他教程资源,以深入了解 NumPy 提供的丰富功能和操作。
除了上述提到的基本操作外,NumPy 还提供了许多其他有用的数组操作。以下是一些常见的 NumPy 数组操作示例:

  1. 数组切片和索引:
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[1:4])  # 切片操作,提取索引 1 到索引 3 的元素(不包括索引 4)
print(my_array[[0, 2, 4]])  # 使用索引数组进行索引,输出指定索引处的元素
  1. 数组形状操作:
my_array = np.array([[1, 2, 3], [4, 5, 6]])
print(my_array.shape)  # 输出数组的形状
print(my_array.ndim)  # 输出数组的维度
print(my_array.size)  # 输出数组的大小(元素个数)
print(my_array.reshape(3, 2))  # 重塑数组形状
  1. 数组拼接和分割:
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
print(np.concatenate([array1, array2]))  # 数组拼接
print(np.vstack([array1, array2]))  # 垂直堆叠数组
print(np.hstack([array1, array2]))  # 水平堆叠数组
print(np.split(array1, 3))  # 将数组分割为多个子数组
  1. 数组统计和数学函数:
my_array = np.array([1, 2, 3, 4, 5])
print(np.min(my_array))  # 数组最小值
print(np.max(my_array))  # 数组最大值
print(np.sum(my_array))  # 数组元素求和
print(np.mean(my_array))  # 数组平均值
print(np.std(my_array))  # 数组标准差
print(np.exp(my_array))  # 对数组元素进行指数运算

4.数据帧Dataframe格式

Pandas 数据帧(DataFrame)是 Pandas 库中用于处理和分析数据的主要数据结构之一。数据帧类似于电子表格或数据库表格,它是一个二维标记的数据结构,具有行和列,可以存储不同类型的数据。

下面是一些常见的 Pandas 数据帧操作说明:

  1. 导入 Pandas 库:
import pandas as pd
  1. 创建数据帧:
# 从列表或数组创建数据帧
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
print(df)

# 从 CSV 文件读取数据帧
df = pd.read_csv('data.csv')
  1. 查看数据帧:
print(df.head())  # 查看数据帧的前几行,默认显示前 5 行
print(df.tail())  # 查看数据帧的后几行,默认显示后 5 行
print(df.shape)  # 查看数据帧的形状(行数,列数)
print(df.info())  # 查看数据帧的基本信息,包括列名和数据类型
  1. 访问数据帧数据:
print(df['Name'])  # 访问指定列的数据
print(df.loc[0])  # 访问指定行的数据
print(df.loc[0:2, 'Name':'Age'])  # 访问指定行和列的数据
  1. 过滤数据帧:
filtered_df = df[df['Age'] > 30]  # 根据条件过滤数据
print(filtered_df)
  1. 添加和修改数据帧:
df['Salary'] = [5000, 6000, 7000]  # 添加新列
df.loc[0, 'Age'] = 26  # 修改指定位置的值
  1. 缺失值处理:
df.dropna()  # 删除包含缺失值的行
df.fillna(value)  # 使用指定值填充缺失值
  1. 数据统计和计算:
print(df.describe())  # 对数据帧中的数值列进行统计描述
print(df.mean())  # 计算每列的平均值
print(df['Age'].sum())  # 计算指定列的总和

这些是 Pandas 数据帧的一些常见操作示例。Pandas 还提供了许多其他功能,如数据排序、数据分组、数据合并、数据透视表等。你可以参考 Pandas 官方文档或其他教程资源,以深入了解 Pandas 提供的丰富功能和操作。

5.补充(For循环)

在 Python 中,for 循环可以用于多种场景,包括但不限于以下几种常见的使用场景:

  1. 遍历序列:for 循环可以用于遍历字符串、列表、元组等序列类型的数据。在每次迭代中,循环变量将依次取到序列中的每个元素。例如:
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
    print(fruit)

这段代码将遍历 fruits 列表中的每个水果,并将其打印出来。

  1. 遍历字典:for 循环也可以用于遍历字典。在每次迭代中,循环变量将依次取到字典中的每个键。可以通过字典的 items() 方法获取键值对,进而在循环中访问键和对应的值。例如:
student_scores = {'Alice': 85, 'Bob': 92, 'Charlie': 78}
for name, score in student_scores.items():
    print(name, score)

这段代码将遍历 student_scores 字典中的每个学生及其对应的分数,并将其打印出来。

  1. 数字迭代:通过使用内置函数 range(),可以在 for 循环中进行数字迭代。range() 函数返回一个表示数字范围的迭代器,可以指定起始值、结束值和步长。例如:
for i in range(1, 6):
    print(i)

这段代码将迭代打印出从 1 到 5 的整数。

  1. 文件处理:for 循环可以用于逐行读取文件中的内容。通过打开文件,并使用文件对象进行迭代,可以依次读取文件中的每一行。例如:
with open('file.txt', 'r') as file:
    for line in file:
        print(line)

这段代码将逐行读取名为 “file.txt” 的文件中的内容,并将每行内容打印出来。

这些只是 for 循环的一些常见使用场景和示例。for 循环在 Python 中非常灵活和强大,可以用于各种需要迭代处理的情况。根据具体的需求,可以灵活运用 for 循环来处理不同类型的数据和完成不同的任务。

好了,内容就到这儿了。希望能帮助到大家!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值