2024-08-13



import pandas as pd
 
# 1. 读取Excel文件
df = pd.read_excel('example.xlsx')
 
# 2. 选择特定的列
selected_column = df['Column Name']
 
# 3. 选择特定的行
selected_rows = df[df['Column Name'] == 'Some Value']
 
# 4. 修改数据
df.loc[df['Column Name'] == 'Some Value', 'Column Name'] = 'New Value'
 
# 5. 添加新列
df['New Column'] = df['Column1'] + df['Column2']
 
# 6. 删除列
del df['Column Name']
 
# 7. 排序
df_sorted = df.sort_values(by='Column Name')
 
# 8. 去重
df_unique = df.drop_duplicates(subset=['Column1', 'Column2'])
 
# 9. 条件筛选
filtered_df = df[df['Column Name'].isin(['Value1', 'Value2'])]
 
# 10. 分组统计
grouped_df = df.groupby('Column Name').sum()
 
# 11. 合并数据帧
df_merged = pd.merge(df1, df2, on='Common Column')
 
# 12. 保存到Excel
df.to_excel('output.xlsx', index=False)
 
# 13. 数据的转置(对行列互换)
df_transposed = df.transpose()
 
# 14. 读取CSV文件并保存为Excel
csv_df = pd.read_csv('example.csv')
csv_df.to_excel('output.xlsx', index=False)

以上代码示例展示了如何使用Python的pandas库来处理Excel文件的常见操作,包括读取、选择列和行、修改数据、添加和删除列、排序、去重、条件筛选、分组统计、合并数据帧、保存数据以及转置数据。这些操作涵盖了日常数据分析的常用步骤,对于数据处理任务非常有用。

2024-08-13

LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN),用于处理具有长期依赖关系的时间序列数据。

LSTM的核心思想是通过一种名为“遗忘门”和“输入门”的机制来控制信息的流动,以及一个名为“记忆单元”的结构来存储信息。

以下是使用Keras库在Python中实现LSTM的示例代码:




from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
import numpy as np
 
# 假设我们有一个时间序列数据集
data = np.random.random((1000, 5))  # 1000个时间步,每个时间步5个特征
 
# 定义模型
model = Sequential()
model.add(LSTM(50, input_shape=(None, 5)))  # LSTM层,50个隐藏单元
model.add(Dense(1))  # 全连接层,用于回归
 
# 编译模型
model.compile(optimizer='adam', loss='mse')
 
# 训练模型
model.fit(data, np.zeros((1000, 1)), epochs=10, verbose=2)
 
# 进行预测(可选)
print(model.predict(data[:1]))

这段代码创建了一个简单的LSTM模型,用于时间序列数据的学习和预测。模型接收一个形状为(1000, 5)的数据集,其中1000是时间步的数量,5是每个时间步的特征数,LSTM层有50个隐藏单元。模型使用随机初始化权重进行训练,输出层是一个全连接层用于回归任务。模型被编译并在数据集上训练10个周期,之后进行预测。

2024-08-13



# 通讯录管理系统
class Contact:
    def __init__(self, name, phone):
        self.name = name
        self.phone = phone
 
class ContactsList:
    def __init__(self):
        self.contact_list = []
 
    def add_contact(self, name, phone):
        self.contact_list.append(Contact(name, phone))
 
    def show_contacts(self):
        for contact in self.contact_list:
            print(f"Name: {contact.name}, Phone: {contact.phone}")
 
    def search_contact(self, name):
        for contact in self.contact_list:
            if contact.name == name:
                print(f"Name: {contact.name}, Phone: {contact.phone}")
                return
        print("Contact not found.")
 
    def delete_contact(self, name):
        self.contact_list = [contact for contact in self.contact_list if contact.name != name]
 
    def update_contact(self, name, new_phone):
        for contact in self.contact_list:
            if contact.name == name:
                contact.phone = new_phone
                print("Contact updated successfully.")
                return
        print("Contact not found.")
 
# 使用示例
contacts = ContactsList()
contacts.add_contact("Alice", "12345")
contacts.add_contact("Bob", "67890")
contacts.show_contacts()
contacts.search_contact("Alice")
contacts.delete_contact("Alice")
contacts.update_contact("Bob", "54321")
contacts.show_contacts()

这段代码定义了ContactContactsList两个类,分别用于表示单个联系人和通讯录列表。通过添加、显示、搜索、删除和更新联系人的方法,实现了一个简单的通讯录管理系统。

2024-08-13

plt.plot()是Matplotlib库中的一个函数,用于绘制线图。以下是一些常用参数的介绍和使用示例:

参数:

  • x:数据的x轴坐标,可选项,如果不提供,默认使用数据的索引。
  • y:数据的y轴坐标,必须提供。
  • label:线的标签,用于图例显示。
  • color:线的颜色。
  • linestyle:线的样式,如 '--' 表示虚线。
  • marker:标记的样式,如 'o' 表示圆形标记。
  • alpha:线的透明度。

示例代码:




import matplotlib.pyplot as plt
 
# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 2, 4, 2]
 
# 绘制线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', marker='o', alpha=0.5)
 
# 设置图表标题
plt.title('Line Plot Example')
 
# 显示图例
plt.legend()
 
# 显示网格
plt.grid(True)
 
# 显示图表
plt.show()

这段代码会创建一个简单的线图,其中包含标签、颜色、线型和标记。图表还显示了图例、标题和网格。

2024-08-13



import pandas as pd
 
# 创建一个简单的DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 23, 34, 29]}
df = pd.DataFrame(data)
 
# 打印DataFrame
print(df)
 
# 将DataFrame导出到CSV文件
df.to_csv('output.csv', index=False)
 
# 从CSV文件读取数据到新的DataFrame
df_from_csv = pd.read_csv('output.csv')
 
# 打印新的DataFrame
print(df_from_csv)

这段代码展示了如何使用pandas库创建一个简单的DataFrame,并将其导出为CSV文件,然后再从CSV文件读取数据到新的DataFrame。这个过程是数据处理和分析的常见步骤,pandas库提供了很好的支持。

2024-08-13

TensorFlow是一个用于人工智能的开源库,特别是用于机器学习和深度学习。以下是一些TensorFlow的常用函数和类的简单介绍:

  1. tf.constant(): 创建一个常量tensor。



import tensorflow as tf
 
# 创建一个常量tensor
constant = tf.constant([1, 2, 3, 4, 5])
 
# 运行TensorFlow会话
with tf.Session() as sess:
    print(sess.run(constant))  # 输出: [1 2 3 4 5]
  1. tf.placeholder(): 创建一个占位符,用于之后feed数据。



import tensorflow as tf
 
# 创建一个占位符
placeholder = tf.placeholder(tf.int32, [None, 10])
 
# 运行TensorFlow会话
with tf.Session() as sess:
    # feed数据
    result = sess.run(placeholder, feed_dict={placeholder: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]})
    print(result)  # 输出: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
  1. tf.add(), tf.subtract(), tf.multiply(), tf.divide(): 基本算术运算。



import tensorflow as tf
 
a = tf.constant([1, 2, 3, 4, 5])
b = tf.constant([10, 20, 30, 40, 50])
 
addition = tf.add(a, b)
subtraction = tf.subtract(a, b)
multiplication = tf.multiply(a, b)
division = tf.divide(a, b)
 
with tf.Session() as sess:
    print("Addition:", sess.run(addition))  # 输出: Addition: [11 22 33 44 55]
    print("Subtraction:", sess.run(subtraction))  # 输出: Subtraction: [-9 -18 -27 -36 -45]
    print("Multiplication:", sess.run(multiplication))  # 输出: Multiplication: [ 10  40  90 160 250]
    print("Division:", sess.run(division))  # 输出: Division: [0 1 1 1 1]
  1. tf.train.GradientDescentOptimizer(): 梯度下降优化器,用于梯度下降法更新权重。



import tensorflow as tf
 
# 假设的权重和偏差
weights = tf.Variable(5.0)
bias = tf.Variable(10.0)
 
# 假设的输入和输出数据
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
 
# 线性模型
linear_model = weights * x + bias
 
# 损失函数
loss = tf.square(linear_model - y)
 
# 优化器
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
 
# 初始化变量
init = tf.global_variables_initializer()
 
with tf.Session() as sess:
    sess.run(init)
    for i in range(20):
        sess.run(train, {x: 1.0, y: 2.0})
        print("W: %f, b: %f" % (sess.run(weights), sess.run(bias)))
  1. tf.nn.softmax_cross_entropy_with_logits(): 对于有softmax的分类问题,计算交叉熵损失。
2024-08-13



import matplotlib.pyplot as plt
 
# 曲线图
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.title('Curve')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
 
# 条形图
labels = ['G1', 'G2', 'G3', 'G4', 'G5']
values = [10, 20, 30, 40, 50]
plt.bar(labels, values)
plt.title('Bar Graph')
plt.xlabel('Group')
plt.ylabel('Value')
plt.show()
 
# 饼图
slices = [70, 20, 10]
activities = ['Sleeping', 'Eating', 'Working']
colors = ['green', 'red', 'blue']
plt.pie(slices, labels=activities, colors=colors, startangle=90, autopct='%1.1f%%')
plt.title('Pie Chart')
plt.show()

这段代码展示了如何使用matplotlib库中的pyplot模块绘制常见的图形,包括曲线图、条形图和饼图。每个图形都有标题、x轴标签、y轴标签,以及适合该图形类型的数据。

2024-08-13

Python MSS(Screen Shotting System)是一个跨平台的Python库,用于快速进行屏幕截图。以下是一个使用Python MSS进行屏幕截图的简单示例:




import mss
 
# 创建 mss 实例
with mss.mss() as screenshot:
    # 获取显示器的屏幕截图
    monitor = screenshot.monitors[0]
    screenshot = screenshot.grab(monitor)
    
    # 将截图保存为文件
    screenshot.save('screenshot.png')

这段代码首先导入了mss库,然后创建了一个mss实例。通过with语句确保资源的正确释放。接着,我们获取了显示器的截图,并将其保存为PNG文件。这个例子展示了如何使用Python MSS进行基本的屏幕截图操作。

2024-08-13



import socket
 
# 创建UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 
# 定义服务器地址和端口
server_address = ('localhost', 10000)
 
# 发送数据
message = b'Hello, World!'
print(f"Sending: {message}")
sock.sendto(message, server_address)
 
# 接收数据
print("Waiting to receive messages...")
while True:
    data, server = sock.recvfrom(4096)
    if data:
        print(f"Received: {data}")
    else:
        print("No more messages to receive.")
        break
 
# 关闭套接字
sock.close()

这段代码展示了如何使用Python的socket库创建UDP套接字,并进行数据的发送和接收。首先创建套接字,然后定义服务器地址,发送一条消息。接下来进入一个循环,持续接收数据,直到没有更多数据为止,最后关闭套接字。这是学习网络编程中的一个基本例子。

2024-08-13



import tkinter as tk
from tkinter import ttk
 
def create_tab(master):
    tab_control = ttk.Notebook(master)  # 创建选项卡控件
 
    # 创建第一个选项卡
    tab1 = ttk.Frame(tab_control)
    tab_control.add(tab1, text='选项卡1')  # 添加选项卡1
 
    # 创建第二个选项卡
    tab2 = ttk.Frame(tab_control)
    tab_control.add(tab2, text='选项卡2')  # 添加选项卡2
 
    tab_control.pack(expand=1, fill="both")  # 布局选项卡控件
 
def create_slider(master):
    s = ttk.Scale(master, orient=tk.HORIZONTAL, length=200, from_=0, to=10)
    s.pack()
 
def create_color_picker(master):
    color_v = tk.StringVar()
    color_chooser = ttk.Combobox(master, textvariable=color_v)
    color_chooser['values'] = ('red', 'green', 'blue')
    color_chooser.current(0)
    color_chooser.pack()
 
def create_text_dialog(master):
    def on_dialog():
        text_dialog.deiconify()
    btn = ttk.Button(master, text="打开对话框", command=on_dialog)
    btn.pack()
 
    text_dialog = tk.Toplevel(master)
    text_dialog.withdraw()  # 初始隐藏对话框
    message = tk.Message(text_dialog, text='这是一个消息对话框', width=200)
    message.pack()
 
def create_entry_dialog(master):
    def on_dialog():
        name = entry_field.get()
        print('输入的名字是:', name)
 
    btn = ttk.Button(master, text="打开输入对话框", command=on_dialog)
    btn.pack()
 
    entry_dialog = tk.Toplevel(master)
    entry_dialog.withdraw()  # 初始隐藏对话框
    label = tk.Label(entry_dialog, text="请输入你的名字:")
    label.pack()
    entry_field = tk.Entry(entry_dialog)
    entry_field.pack()
    btn_ok = ttk.Button(entry_dialog, text="确定", command=lambda: [on_dialog(), entry_dialog.destroy()])
    btn_ok.pack()
 
def main():
    root = tk.Tk()
    root.title("GUI 示例")
 
    # 创建选项卡
    create_tab(root)
 
    # 创建滑块
    create_slider(root)
 
    # 创建颜色选择框
    create_color_picker(root)
 
    # 创建文本对话框
    create_text_dialog(root)
 
    # 创建输入对话框
    create_entry_dialog(root)
 
    root.mainloop()
 
if __name__ == '__main__':
    main()

这段代码展示了如何在Python中使用tkinter库创建一个简单的GUI应用程序,其中包括了选项卡、滑块、颜色选择框、文本对话框和输入对话框的创建。每个功能被封装在一个单独的函数中,主函数main()则调用这些功能来创建和展示GUI界面。