2024-08-16



# 更新系统
sudo apt-update
sudo apt-upgrade
 
# 安装依赖
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
 
# 下载Python源码
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
 
# 解压源码
tar -xvf Python-3.7.0.tar.xz
 
# 编译安装Python
cd Python-3.7.0
./configure --enable-optimizations
make -j 8  # 根据CPU核心数调整 -j 参数
sudo make altinstall  # 使用 altinstall 避免替换系统默认的python版本
 
# 清理文件和环境变量
cd ..
rm Python-3.7.0.tar.xz
rm -rf Python-3.7.0
 
# 验证Python安装
python3.7 --version

这段代码展示了如何在Ubuntu 24.04上从源码编译并安装Python 3.7版本,并避免替换系统默认的Python版本。通过make -j 8命令可以利用多核心处理能力加快编译过程,--enable-optimizations选项启用编译优化。使用altinstall避免覆盖系统默认的Python链接,这样可以同时安装和使用多个Python版本。

2024-08-16



# 导入必要的模块
import json
import joblib
import pickle
 
# 假设有一个字典变量
data_dict = {
    'name': 'Alice',
    'age': 30,
    'location': 'Wonderland'
}
 
# 将变量保存到txt文件
with open('data.txt', 'w') as file:
    file.write(str(data_dict))
 
# 从txt文件中加载变量
with open('data.txt', 'r') as file:
    data_loaded_from_txt = eval(file.read())
 
# 将变量保存到json文件
with open('data.json', 'w') as file:
    json.dump(data_dict, file)
 
# 从json文件中加载变量
with open('data.json', 'r') as file:
    data_loaded_from_json = json.load(file)
 
# 将变量保存到pickle文件
with open('data.pkl', 'wb') as file:
    pickle.dump(data_dict, file)
 
# 从pickle文件中加载变量
with open('data.pkl', 'rb') as file:
    data_loaded_from_pickle = pickle.load(file)
 
# 将变量保存到joblib文件
import numpy as np
from joblib import dump, load
data_array = np.arange(10)
dump(data_array, 'data.joblib')
 
# 从joblib文件中加载变量
data_loaded_from_joblib = load('data.joblib')
 
# 打印加载后的变量
print(data_loaded_from_txt)
print(data_loaded_from_json)
print(data_loaded_from_pickle)
print(data_loaded_from_joblib)

这段代码展示了如何使用不同的格式来保存和加载Python变量。txt文件通过writeread方法保存和读取Python对象的字符串表示;json文件使用json模块的dumpload方法来保存和读取JSON格式的数据;pickle文件使用pickle模块的dumpload方法来保存和读取Python对象的二进制表示;joblib文件使用joblib库的dumpload方法来保存和读取NumPy数组。这些方法都可以用于不同类型的数据和变量。

2024-08-16



import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
# 读取数据集
df = pd.read_csv('Enterprise_Financial_Capability.csv')
 
# 分析并可视化财务能力指标与财务风险之间的关系
sns.pairplot(df, x_vars=['Financial Capability Score'], y_vars=['Financial Risk Score'], size=7, aspect=0.8)
plt.show()
 
# 分析并可视化财务能力指标与财务风险之间的关系 (散点图)
sns.scatterplot(x='Financial Capability Score', y='Financial Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与财务效益之间的关系 (箱型图)
sns.boxplot(x='Financial Capability Score', y='Financial Profitability Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与财务效益之间的关系 (散点图)
sns.scatterplot(x='Financial Capability Score', y='Financial Profitability Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与流动性风险之间的关系 (计数图)
sns.countplot(x='Financial Capability Score', hue='Liquidity Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与长期利率风险之间的关系 (散点图)
sns.scatterplot(x='Financial Capability Score', y='Interest Rate Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与市场需求之间的关系 (箱型图)
sns.boxplot(x='Financial Capability Score', y='Market Demand Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与供应链风险之间的关系 (散点图)
sns.scatterplot(x='Financial Capability Score', y='Supply Chain Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与财务风险之间的关系 (计数图)
sns.countplot(x='Financial Capability Score', hue='Total Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与财务风险之间的关系 (箱型图)
sns.boxplot(x='Financial Capability Score', y='Total Risk Score', data=df)
plt.show()
 
# 分析并可视化财务能力指标与财务风险之间的关系 (散点图)
sns.scatterplot(x='Financial Capability Score', y='Total Risk Score', data=df)
plt.show()

这段代码使用了Seaborn库来分析并可视化数据集中的财务能力指标与不同财务风险(如流动性风险、利率风险、供应链风险等)之间的关系。它展示了如何使用Seaborn的pairplotscatterplotboxplotcountplot等函数来创建各种可视化图表,从而深入了解数据的分布和潜在的关系。

2024-08-16

在Python中,你可以使用index()方法来找到列表中给定元素的索引。如果元素不在列表中,index()方法会抛出一个ValueError异常。

示例代码:




my_list = ['apple', 'banana', 'cherry']
 
try:
    index_of_banana = my_list.index('banana')
    print(f"索引位置: {index_of_banana}")
except ValueError:
    print("列表中不存在该元素")

如果你想要找到所有匹配的元素的索引,可以使用列表推导式:




my_list = ['apple', 'banana', 'cherry', 'banana']
 
indices_of_banana = [index for index, element in enumerate(my_list) if element == 'banana']
print(indices_of_banana)  # 输出: [1, 3]

这里使用了enumerate()函数和列表推导式来获取所有匹配元素的索引。

2024-08-16



import numpy as np
import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt
 
# 假设data是一个包含数据的pandas DataFrame
# 这里只是示例,需要根据实际情况调整
data = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': [2, 3, 4, 5, 6],
    'D': [6, 5, 4, 3, 2]
})
 
# 计算皮尔逊相关系数矩阵
corr_matrix = data.corr()
 
# 绘制皮尔逊热力图
sns.heatmap(corr_matrix, annot=True, square=True, cmap='Blues', mask=np.triu(np.ones_like(corr_matrix)), fmt='.2f')
plt.show()
 
# 下三角和上三角分开处理
# 下三角
mask_lower = np.tril(np.ones_like(corr_matrix))
sns.heatmap(corr_matrix, annot=True, square=True, cmap='Blues', mask=mask_lower, fmt='.2f')
plt.show()
 
# 上三角
mask_upper = np.triu(np.ones_like(corr_matrix))
sns.heatmap(corr_matrix, annot=True, square=True, cmap='Blues', mask=mask_upper, fmt='.2f')
plt.show()

这段代码首先计算皮尔逊相关系数矩阵,然后使用seaborn的heatmap函数绘制皮尔逊热力图,并使用numpy的triu和tril函数来创建掩码,分别显示下三角和上三角。

2024-08-16

在Python中,你可以使用subprocess模块来执行cmd命令。以下是一个简单的例子:




import subprocess
 
# 执行cmd命令
def execute_cmd(cmd):
    # 使用subprocess.run来执行命令
    result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    # 输出命令的执行结果
    print(result.stdout)
    # 如果有错误,打印错误信息
    if result.stderr:
        print(result.stderr)
 
# 使用示例
execute_cmd('echo Hello, World!')
execute_cmd('dir')  # 只在Windows上有效

这段代码定义了一个execute_cmd函数,它接受一个命令行字符串作为参数,并使用subprocess.run来执行这个命令。shell=True允许命令通过shell执行,这样你可以直接运行类似dir这样的命令。stdout=subprocess.PIPEstderr=subprocess.PIPE表示将标准输出和标准错误重定向到管道,以便我们可以读取它们。text=True表示以文本模式返回结果,这样结果将是字符串而不是字节。

注意:在使用shell=True时,安全风险较高,应避免传递未经适当清理的用户输入到这个参数。

2024-08-16

Gemini大模型是一个基于人工智能技术的自然语言处理模型,它能够理解和生成人类语言。在Python中,你可以使用各种方法来调用和使用Gemini大模型。

方法一:使用Hugging Face的transformers库

Hugging Face的transformers库提供了一个接口,可以让我们调用Gemini大模型。




from transformers import pipeline
 
classifier = pipeline('text-generation', model='google/gemini-13b')
 
text = "世界上最高的山是?"
 
response = classifier(text, max_length=50)[0]['text']
 
print(response)

方法二:使用Gradio库进行在线部署

如果你想在自己的网站上使用Gemini大模型,可以使用Gradio库进行在线部署。




import gradio as gr
from transformers import pipeline
 
classifier = pipeline('text-generation', model='google/gemini-13b')
 
def predict(text):
    return classifier(text, max_length=50)[0]['text']
 
iface = gr.Interface(fn=predict, inputs="text", outputs="text")
iface.launch()

以上两种方法都可以调用Gemini大模型,你可以根据自己的需求选择合适的方法。

注意:以上代码只是示例,实际使用时需要根据自己的环境配置和具体需求进行调整。此外,由于Gemini大模型属于较新的模型,可能需要通过指定版本号来确保兼容性,例如 'google/gemini-13b'。如果你在运行上述代码时遇到任何问题,可能需要查看Hugging Face的官方文档或Gradio的官方文档以获取更多信息。

2024-08-16



from openpyxl import load_workbook
 
# 加载已存在的Excel文件
workbook = load_workbook(filename='example.xlsx')
 
# 选择工作表
sheet = workbook.active  # 激活的工作表或者 workbook['工作表名']
 
# 读取单元格内容
cell = sheet['A1']  # 或者使用 sheet.cell(row=1, column=1)
print(cell.value)
 
# 读取多个单元格
for row in sheet.iter_rows(min_row=1, max_row=2, min_col=1, max_col=3):
    for cell in row:
        print(cell.value, end=" ")
    print()
 
# 当你完成操作后,可以选择性地保存文件
workbook.save('example_modified.xlsx')

这段代码演示了如何使用openpyxl库加载一个Excel文件,选择一个工作表,读取单个单元格和多个单元格的内容,并在完成操作后保存文件。需要注意的是,这里的example.xlsx应该替换为你要打开的文件名。

2024-08-16

报错解释:

ImportError 表示 Python 无法导入指定的模块或包。这个错误通常发生在以下几种情况:

  1. 指定的模块或包不存在于指定路径中。
  2. 模块或包存在但不兼容当前 Python 版本。
  3. 模块或包依赖其他模块,而这些依赖没有正确安装。

报错信息中的 /root/.local/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so 指示 Python 尝试导入的扩展模块 _ext 是为 Python 3.8 版本编译的,并且是针对特定 Linux 平台(通常是 Ubuntu)。

解决方法:

  1. 确认 _ext.cpython-38-x86_64-linux-gnu.so 文件是否确实存在于指定的路径下。
  2. 确认当前 Python 环境是否为 Python 3.8,以及是否运行在兼容的 Linux 系统上。
  3. 如果环境不匹配,尝试安装与当前 Python 版本和操作系统兼容的 mmcv 包。可以使用 pip 进行安装或者根据官方文档选择合适的版本。
  4. 如果是虚拟环境,确保虚拟环境已激活,并且使用的是正确的 Python 版本。
  5. 如果问题依旧存在,尝试重新安装 mmcv 包,可以使用 pip install --upgrade mmcv 来进行更新或重新安装。

请注意,如果你的环境是 Windows 或者其他 Python 版本,你需要找到对应环境的 mmcv 版本进行安装。

2024-08-16



# 使用with open实现文件复制
def file_copy(src_file, dest_file):
    with open(src_file, 'rb') as src, open(dest_file, 'wb') as dest:
        dest.write(src.read())
 
# 使用with open实现文件的读取和关闭
def read_and_close(file_path):
    with open(file_path, 'r') as file:
        content = file.read()
    print(content)
 
# 使用with open实现文件的写入和关闭
def write_and_close(file_path, content):
    with open(file_path, 'w') as file:
        file.write(content)
 
# 测试函数
src_file = 'test_src.txt'
dest_file = 'test_dest.txt'
file_copy(src_file, dest_file)  # 文件复制
read_and_close('test.txt')  # 读取并打印文件内容
write_and_close('test.txt', 'Hello, World!')  # 写入内容到文件

这段代码展示了如何使用with open来复制文件、读取文件内容并打印,以及写入内容到文件,并在操作完成后文件自动关闭。这种方式是一种更加推荐的做法,因为它可以保证即使发生异常文件也会被正确关闭。