Python中的IPython:交互式的Python shell

news2024/9/22 15:56:36

你是否曾经想要一个能让你与Python代码实时交互的环境?一个可以即时执行代码、查看结果,甚至可以在运行过程中修改变量的工具?如果是,那么IPython就是为你量身打造的利器!在这篇文章中,我们将深入探讨IPython这个强大的交互式Python shell,看看它如何彻底改变了我们与Python交互的方式。

在这里插入图片描述

目录

    • 什么是IPython?
      • IPython的核心理念
    • IPython的核心特性
      • 1. 增强的交互式Shell
      • 2. Tab补全
      • 3. 内联文档
      • 4. 魔法命令
      • 5. 多行编辑
      • 6. 富文本输出
    • 安装和启动IPython
    • IPython的基本使用
      • 1. 基本计算
      • 2. 变量赋值和使用
      • 3. 定义和使用函数
      • 4. 帮助和文档
      • 5. Tab补全
    • 魔法命令:IPython的秘密武器
      • 1. %timeit:测量代码执行时间
      • 2. %run:运行Python脚本
      • 3. %load:加载外部代码
      • 4. %hist:查看命令历史
      • 5. %who:列出所有变量
      • 6. %time:测量单元格执行时间
      • 7. %matplotlib inline:在Notebook中内联显示图形
    • IPython与数据科学
      • 1. 与NumPy和Pandas的集成
      • 2. 数据可视化
      • 3. 交互式数据探索
    • IPython vs 标准Python解释器
    • IPython的高级特性
      • 1. 并行计算
      • 2. 交互式调试
      • 3. 性能分析
    • IPython在实际项目中的应用
      • 1. 数据清洗和预处理
      • 2. 算法开发和测试
      • 3. 交互式报告生成
    • 总结

什么是IPython?

IPython,全称Interactive Python,是一个强大的交互式Python shell。它不仅仅是一个增强版的Python解释器,更是一个完整的计算环境,为科学计算、数据分析和一般的Python开发提供了丰富的工具和功能。

IPython的诞生源于Fernando Pérez在2001年的一个想法:创建一个更强大、更灵活的Python交互环境。从那时起,IPython已经发展成为Python生态系统中不可或缺的一部分,尤其在科学计算和数据科学领域。
image.png

IPython的核心理念

IPython的设计理念可以概括为以下几点:

  1. 交互性:提供一个即时反馈的环境,让用户可以快速测试想法和代码片段。
  2. 增强的shell:不仅支持Python代码,还支持shell命令和特殊的"魔法"命令。
  3. 富文本输出:支持图形、HTML、LaTeX等多种格式的输出。
  4. 历史记录和代码补全:提高编码效率和用户体验。
  5. 并行计算支持:通过IPython集群可以轻松实现并行计算。
    image.png

IPython的核心特性

让我们深入了解IPython的一些核心特性,这些特性使得它成为众多Python开发者的首选工具。

1. 增强的交互式Shell

IPython提供了一个功能强大的交互式shell,它不仅支持标准的Python语法,还增加了许多便捷功能:

  • 语法高亮:代码在输入时就会进行语法高亮,使得代码更易读。
  • 自动缩进:IPython会自动处理代码的缩进,减少了手动缩进的麻烦。
  • 智能历史:可以使用上下箭头键快速浏览和编辑之前输入的命令。

2. Tab补全

IPython的Tab补全功能非常强大,不仅可以补全变量名和函数名,还可以:

  • 补全文件路径
  • 显示对象的属性和方法
  • 补全模块名和包名

这大大提高了编码的效率,尤其是在处理大型项目或复杂的数据结构时。

3. 内联文档

使用???可以快速查看对象的文档和源代码:
image.png

In [1]: len?
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

In [2]: str.upper??
Signature: str.upper(self, /)
Docstring: Return a copy of the string converted to uppercase.
Source:   
    def upper(self, /):
        'Return a copy of the string converted to uppercase.'
        return self.translate(_idmap.upper_table)

这个功能让你可以在不离开IPython环境的情况下快速了解函数或方法的用法和实现。

4. 魔法命令

IPython引入了"魔法命令"的概念,这些命令以%(行魔法)或%%(单元魔法)开头,提供了许多有用的功能:

# 测量代码执行时间
In [3]: %timeit [i**2 for i in range(1000)]
221 µs ± 2.25 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

# 在IPython中运行系统命令
In [4]: !ls
data.csv  my_script.py  notebook.ipynb

# 加载外部Python文件
In [5]: %run my_script.py

我们将在后面的章节中更详细地探讨魔法命令。

5. 多行编辑

IPython允许你在一个输入单元中编写和执行多行代码,这对于定义函数或类特别有用:

In [6]: def greet(name):
    ...:     print(f"Hello, {name}!")
    ...:     print("Welcome to IPython!")
    ...:     
    ...: greet("Alice")
Hello, Alice!
Welcome to IPython!

6. 富文本输出

IPython不仅可以显示文本输出,还可以显示图像、HTML、LaTeX公式等:

from IPython.display import HTML, Math

HTML("<h1>Hello, IPython!</h1>")
Math(r"\int_0^1 x^2 dx")

这个特性在数据可视化和科学计算中特别有用。

安装和启动IPython

安装IPython非常简单,你可以使用pip(Python的包管理器)来完成:

pip install ipython

安装完成后,你可以通过在命令行中输入ipython来启动IPython:

$ ipython
Python 3.9.5 (default, May 18 2021, 14:42:02) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.23.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 

你会看到IPython的提示符In [1]:,表示IPython已经成功启动,你可以开始输入Python代码了。

IPython的基本使用

image.png

现在我们已经启动了IPython,让我们来看看如何使用它的一些基本功能。

1. 基本计算

IPython可以像一个高级计算器一样使用:

In [1]: 2 + 2
Out[1]: 4

In [2]: 50 * 30
Out[2]: 1500

In [3]: import math

In [4]: math.pi
Out[4]: 3.141592653589793

In [5]: math.sin(math.pi/2)
Out[5]: 1.0

image.png

2. 变量赋值和使用

你可以定义变量并在后续的计算中使用它们:

In [6]: x = 10

In [7]: y = 20

In [8]: x + y
Out[8]: 30

In [9]: z = x * y

In [10]: z
Out[10]: 200

3. 定义和使用函数

IPython允许你定义和使用函数,就像在普通的Python脚本中一样:

In [11]: def square(x):
    ...:     return x ** 2
    ...: 

In [12]: square(5)
Out[12]: 25

In [13]: [square(i) for i in range(5)]
Out[13]: [0, 1, 4, 9, 16]

image.png

4. 帮助和文档

IPython提供了方便的方式来查看对象的文档和帮助信息:

In [14]: len?
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

In [15]: help(str.upper)
Help on method_descriptor:

upper(self, /)
    Return a copy of the string converted to uppercase.

5. Tab补全

Tab补全是IPython最强大的功能之一。试试输入一个对象名称后面跟一个点,然后按Tab键:

In [16]: "hello".
         capitalize()    casefold()      center()        count()         
         encode()        endswith()      expandtabs()    find()          
         format()        format_map()    index()         isalnum()       
         isalpha()       isascii()       isdecimal()     isdigit()       
         isidentifier()  islower()       isnumeric()     isprintable()   
         isspace()       istitle()       isupper()       join()          
         ljust()         lower()         lstrip()        maketrans()     
         partition()     replace()       rfind()         rindex()        
         rjust()         rpartition()    rsplit()        rstrip()        
         split()         splitlines()    startswith()    strip()         
         swapcase()      title()         translate()     upper()         
         zfill()        

In [16]: "hello".upper()
Out[16]: 'HELLO'

这个功能不仅可以帮助你快速查看对象的方法和属性,还能大大提高你的编码效率。

魔法命令:IPython的秘密武器

魔法命令是IPython的一个特色功能,它们以%(行魔法)或%%(单元魔法)开头,提供了许多强大的功能。让我们来看看一些常用的魔法命令:
image.png

1. %timeit:测量代码执行时间

In [17]: %timeit [i**2 for i in range(1000)]
221 µs ± 2.25 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

这个命令会多次运行给定的代码,并给出平均执行时间。

2. %run:运行Python脚本

In [18]: %run my_script.py

这个命令会在当前的IPython环境中运行一个Python脚本。

3. %load:加载外部代码

In [19]: %load my_script.py

这个命令会将外部文件的内容加载到当前的输入单元中。

4. %hist:查看命令历史

In [20]: %hist

这个命令会显示你在当前会话中输入的所有命令。

5. %who:列出所有变量

In [21]: %who
x   y   z

这个命令会列出当前命名空间中的所有变量。

6. %time:测量单元格执行时间

In [22]: %%time
    ...: result = 0
    ...: for i in range(1000000):
    ...:     result += i
    ...: 
CPU times: user 70.8 ms, sys: 0 ns, total: 70.8 ms
Wall time: 71.3 ms

这个单元魔法命令会测量整个代码单元的执行时间。

7. %matplotlib inline:在Notebook中内联显示图形

In [23]: %matplotlib inline
In [24]: import matplotlib.pyplot as plt
In [25]: plt.plot([1,2,3,4])
Out[25]: [<matplotlib.lines.Line2D at 0x7f1b1c1b6d90>]

这个命令在Jupyter Notebook中特别有用,它允许图形直接显示在notebook中。

这些只是IPython提供的众多魔法命令中的一小部分。你可以使用%lsmagic命令来查看所有可用的魔法命令,或者使用%magic来获取更详细的信息。

IPython与数据科学

IPython在数据科学领域特别受欢迎,这主要是因为它提供了许多便利的功能,使得数据分析和可视化变得更加简单和高效。让我们来看看IPython如何在数据科学工作流程中发挥作用。

1. 与NumPy和Pandas的集成

IPython与NumPy和Pandas等常用的数据科学库完美集成。例如:

In [26]: import numpy as np
In [27]: import pandas as pd

In [28]: data = pd.DataFrame({'A': np.random.rand(5),
    ...:                      'B': np.random.rand(5)})

In [29]: data
Out[29]: 
         A         B
0  0.3020  0.302665  0.523292
1  0.189751  0.691415
2  0.536217  0.160011
3  0.873168  0.259336
4  0.085132  0.949768

在这个例子中,我们创建了一个包含随机数据的Pandas DataFrame,并直接在IPython中显示它。IPython的输出格式化功能使得数据更易读。

2. 数据可视化

IPython与matplotlib等可视化库的集成使得数据可视化变得非常简单:

In [30]: %matplotlib inline
In [31]: import matplotlib.pyplot as plt

In [32]: plt.figure(figsize=(10, 6))
In [33]: plt.scatter(data['A'], data['B'])
In [34]: plt.xlabel('A')
In [35]: plt.ylabel('B')
In [36]: plt.title('Scatter plot of A vs B')
In [37]: plt.show()

这段代码会直接在IPython环境中生成一个散点图,无需额外的步骤来显示图形。

3. 交互式数据探索

IPython的交互性使得数据探索变得更加灵活和高效。你可以逐步执行代码,查看中间结果,并根据需要调整你的分析过程:

In [38]: data.describe()
Out[38]: 
                A         B
count   5.000000  5.000000
mean    0.397387  0.516764
std     0.315999  0.324191
min     0.085132  0.160011
25%     0.189751  0.259336
50%     0.302665  0.523292
75%     0.536217  0.691415
max     0.873168  0.949768

In [39]: data.corr()
Out[39]: 
         A         B
A  1.000000 -0.468648
B -0.468648  1.000000

这种即时反馈的方式让你可以快速理解数据的特征,并决定下一步的分析方向。

IPython vs 标准Python解释器

image.png

虽然IPython建立在Python的基础之上,但它提供了许多标准Python解释器所没有的功能。让我们比较一下两者的主要区别:

  1. 交互性

    • IPython:提供更丰富的交互式体验,包括语法高亮、自动缩进和智能历史。
    • 标准Python:基本的交互功能,没有额外的辅助特性。
  2. Tab补全

    • IPython:强大的Tab补全功能,可以补全变量名、函数名、文件路径等。
    • 标准Python:仅提供基本的名称补全。
  3. 魔法命令

    • IPython:提供大量魔法命令,如%timeit, %run等,增强了交互环境的功能。
    • 标准Python:没有魔法命令。
  4. 系统shell集成

    • IPython:可以直接运行系统命令,如!ls, !pwd等。
    • 标准Python:需要使用os.system()或subprocess模块来运行系统命令。
  5. 富文本输出

    • IPython:支持富文本输出,包括图形、HTML、LaTeX等。
    • 标准Python:仅支持文本输出。
  6. 多行编辑

    • IPython:支持方便的多行编辑和执行。
    • 标准Python:多行输入相对繁琐。
  7. 历史记录

    • IPython:提供更强大的历史记录功能,包括跨会话的历史记录。
    • 标准Python:仅提供基本的命令历史。

让我们通过一个具体的例子来说明这些差异:

# 在标准Python解释器中:
>>> def square(x):
...     return x ** 2
... 
>>> square(5)
25
>>> import math
>>> math.sin(math.pi/2)
1.0

# 在IPython中:
In [1]: def square(x):
   ...:     return x ** 2
   ...:     

In [2]: square(5)
Out[2]: 25

In [3]: import math

In [4]: math.sin(math.pi/2)
Out[4]: 1.0

In [5]: %timeit square(1000)
79.9 ns ± 0.635 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [6]: !ls
data.csv  my_script.py  notebook.ipynb

从这个例子中,我们可以看到IPython提供了更友好的多行输入、自动缩进、魔法命令(如%timeit)以及系统命令集成(如!ls)等功能。

IPython的高级特性

除了我们已经讨论过的基本功能,IPython还提供了一些高级特性,这些特性使得它成为一个强大的开发和研究工具。

1. 并行计算

IPython提供了一个并行计算框架,允许你在多个核心或多台机器上分布式执行代码:

from ipyparallel import Client

# 创建一个客户端
rc = Client()

# 创建一个直接视图
dview = rc[:]

# 并行执行函数
def square(x):
    return x**2

result = dview.map_sync(square, range(10))
print(result)

这个功能在处理大规模数据或计算密集型任务时特别有用。

2. 交互式调试

IPython集成了Python的pdb调试器,但提供了更友好的界面:

In [7]: def buggy_function():
   ...:     x = 1
   ...:     y = 0
   ...:     return x / y
   ...: 

In [8]: buggy_function()
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-8-b2c3e5c0a274> in <module>
----> 1 buggy_function()

<ipython-input-7-ef13b8894f7b> in buggy_function()
      2     x = 1
      3     y = 0
----> 4     return x / y

ZeroDivisionError: division by zero

In [9]: %debug
> <ipython-input-7-ef13b8894f7b>(4)buggy_function()
      2     x = 1
      3     y = 0
----> 4     return x / y

ipdb> p x
1
ipdb> p y
0
ipdb> q

这个例子展示了如何使用IPython的调试功能来检查导致错误的变量值。

3. 性能分析

IPython提供了内置的性能分析工具:

In [10]: def slow_function():
    ...:     return sum(i**2 for i in range(10000))
    ...: 

In [11]: %prun slow_function()
         4 function calls in 0.003 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.003    0.003    0.003    0.003 <ipython-input-10>:1(slow_function)
        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.sum}

这个性能分析工具可以帮助你识别代码中的瓶颈。

IPython在实际项目中的应用

IPython不仅仅是一个学习和实验的工具,它在实际的开发和研究项目中也有广泛的应用。让我们看几个具体的例子:

1. 数据清洗和预处理

在数据科学项目中,数据清洗和预处理是非常重要的步骤。IPython的交互性使得这个过程变得更加高效:

In [12]: import pandas as pd

In [13]: # 加载数据
    ...: df = pd.read_csv('raw_data.csv')

In [14]: # 查看数据基本信息
    ...: df.info()

In [15]: # 检查缺失值
    ...: df.isnull().sum()

In [16]: # 填充缺失值
    ...: df['column_name'].fillna(df['column_name'].mean(), inplace=True)

In [17]: # 检查异常值
    ...: df['column_name'].describe()

In [18]: # 可视化数据分布
    ...: df['column_name'].hist()

通过这种交互式的方式,数据科学家可以快速了解数据的特征,并根据需要进行清洗和转换。

2. 算法开发和测试

在开发新的算法时,IPython的即时反馈特性非常有用:

In [19]: def my_algorithm(data, param1, param2):
    ...:     # 算法实现
    ...:     return result

In [20]: # 测试不同的参数
    ...: test_data = [1, 2, 3, 4, 5]
    ...: %timeit my_algorithm(test_data, 0.1, 0.5)
    ...: %timeit my_algorithm(test_data, 0.2, 0.3)

In [21]: # 可视化结果
    ...: results = [my_algorithm(test_data, p1, p2) for p1, p2 in parameter_combinations]
    ...: plt.plot(results)
    ...: plt.show()

这种方法允许开发者快速迭代和优化他们的算法。

3. 交互式报告生成

IPython Notebook(现在的Jupyter Notebook)可以用来创建交互式的报告:

In [22]: from IPython.display import Markdown, display

In [23]: def create_report(data):
    ...:     display(Markdown("# Data Analysis Report"))
    ...:     display(Markdown("## Summary Statistics"))
    ...:     display(data.describe())
    ...:     display(Markdown("## Data Visualization"))
    ...:     data.plot()
    ...:     plt.show()

In [24]: create_report(df)

这种方式可以生成包含代码、文本说明、统计结果和可视化的综合报告。

总结

IPython是一个强大而灵活的交互式计算环境,它极大地增强了Python的功能,尤其是在科学计算和数据分析领域。通过本文,我们深入探讨了IPython的以下方面:

  1. IPython的核心特性,包括增强的交互式shell、Tab补全、魔法命令等。
  2. IPython在数据科学中的应用,特别是与NumPy、Pandas和Matplotlib等库的集成。
  3. IPython与标准Python解释器的比较,突出了IPython的优势。
  4. IPython的高级特性,如并行计算、交互式调试和性能分析。
  5. IPython在实际项目中的应用,包括数据清洗、算法开发和报告生成。

IPython不仅仅是一个工具,它改变了我们与Python交互的方式,使得编程、数据分析和科学计算变得更加高效和愉快。无论你是初学者还是经验丰富的开发者,掌握IPython都将极大地提高你的生产力。

在未来,随着数据科学和机器学习领域的不断发展,IPython的重要性可能会进一步增加。它的灵活性和强大功能使其成为这些快速发展领域的理想工具。

如果你还没有尝试过IPython,现在就是最好的时机。开始使用IPython,探索它的各种功能,你会发现它如何改变你的Python编程体验。记住,实践是掌握IPython的最佳方式,所以不要犹豫,立即开始你的IPython之旅吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2155406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CDVAE项目环境配置

CDVAE环境配置 1. 系统环境2. 设置环境变量3. 配置环境变量4. 安装CDVAE虚拟环境5. 资料下载 1. 系统环境 系统环境&#xff1a;Ubuntu22.04GeForce RTX 3090cuda12.6&#xff08;cuda版本11.1以上均适用&#xff09;。 2. 设置环境变量 先按照CDVAE中描述的设置环境变量。 …

金刚石切削工具学习笔记分享

CVD钻石-合成单晶钻石之一 金刚石具有极高的硬度和耐磨性、较低的摩擦系数、较高的弹性模量、较高的热导率、较低的热膨胀系数、与有色金属的亲和力较小等优点&#xff0c;是目前最硬的工具材料&#xff0c;主要分为单晶金刚石和聚晶金刚石两大类。单晶金刚石又分为天然单晶金…

优化内存工具 | RAM Saver Pro v24.9 便携版

RAM Saver是一款专业的RAM优化工具&#xff0c;旨在提高计算机的性能和运行速度。它通过多种优化技术&#xff0c;如内存碎片整理、CPU和主板缓存效率提升、恢复内存等&#xff0c;为应用程序提供更多的内存资源&#xff0c;从而使系统运行更加流畅。适合所有需要优化内存使用和…

2、StarGAN V2

2、StarGAN V2 StarGAN 论文链接&#xff1a;StarGAN StarGAN V2 论文链接&#xff1a;StarGAN V2 在介绍StarGAN V2之前&#xff0c;我们先对StarGAN有一定的了解&#xff0c;StarGAN V2只是在StarGAN的基础上做出了改进&#xff0c;基本的架构是没有变的&#xff0c;只是将…

探索AI编程新境界:aider库揭秘

文章目录 **探索AI编程新境界&#xff1a;aider库揭秘**背景&#xff1a;为何选择aider&#xff1f;简介&#xff1a;aider是什么&#xff1f;安装指南&#xff1a;如何安装aider&#xff1f;功能演示&#xff1a;aider的简单用法实战应用&#xff1a;aider在不同场景下的使用常…

【RabbitMQ】应用问题

RabbitMQ 应用问题 1. 幂等性保障1.1 幂等性介绍1.2 解决⽅案全局唯⼀ID业务逻辑判断 2. 顺序性保障2.1 顺序性保障介绍2.2 顺序性保障⽅案 3. 消息积压问题3.1 原因分析3.2 解决⽅案 1. 幂等性保障 1.1 幂等性介绍 幂等性是数学和计算机科学中某些运算的性质, 它们可以被多次…

华为静态路由(route-static)

静态路由的组成 在华为路由器中&#xff0c;使用ip route-static命令配置静态路由。 一条静态路由主要包含以下要素&#xff1a; 目的地址&#xff1a;数据包要到达的目标IP地址 子网掩码&#xff1a;用于指定目的地址的网络部分和主机部分 下一跳地址&#xff08;可选&#…

【yolo破损纸板-包装盒-快递袋缺陷检测】

yolo破损纸板-包装盒-快递袋缺陷检测 破损纸质包装盒检测方盒型快递包裹检测 破损纸质包装盒检测 数据集合模型 可视化 方盒型快递包裹检测 数据集和模型 train: ../train/images val: ../valid/images test: ../test/images nc: 1 names: - box_packet可视化

理解JVM中的死锁:原因及解决方案

死锁是并发应用程序中的常见问题。在此类应用程序中&#xff0c;我们使用锁定机制来确保线程安全。此外&#xff0c;我们使用线程池和信号量来管理资源消耗。然而&#xff0c;在某些情况下&#xff0c;这些技术可能会导致死锁。 在本文中&#xff0c;我们将探讨死锁、死锁出现…

蓝桥杯模块一:LED指示灯的基本控制

模块训练一:LED指示灯的基本控制 模块1到模块13都是通过I\O模式进行设计 一、电路图 二、电路分析 1.74HC573锁存器介绍 OE端接地&#xff0c;上电即工作&#xff0c;控制LE端&#xff0c;当LE端接高电平时&#xff0c;锁存器开始工作&#xff0c;接通D和Q 2.电路工作原理分析…

C语言 | Leetcode C语言题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; char* addStrings(char* num1, char* num2) {int i strlen(num1) - 1, j strlen(num2) - 1, add 0;char* ans (char*)malloc(sizeof(char) * (fmax(i, j) 3));int len 0;while (i > 0 || j > 0 || add ! 0) {int x i > 0 ?…

SpringCloud入门(五)Nacos注册中心(上)

国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心&#xff0c;SpringCloudAlibaba也推出了一个名为Nacos的注册中心。Dynami Naming and Configuration Service。是阿里巴巴2018年7月开源的项目。 Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud中的一个组件。…

nuget包管理

1、下载 下载nuget 下载nuget.exe&#xff0c;配置系统环境变量&#xff0c;打开电脑属性一高级系统设置一环境变量一系统变量&#xff0c;选择Path&#xff0c;添加nuget.exe目录 2、常用命令 nuget install System.Data.SQLITE -SolutionDirectory D:\NugetPackages\ -Packa…

基于BiGRU+Attention实现风力涡轮机发电量多变量时序预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

37. Vector3与模型位置、缩放属性

本文章给通过组对象Group (opens new window)给大家讲解一下threejs层级模型或树结构的概念。 Group层级模型(树结构)案例 下面代码创建了两个网格模型mesh1、mesh2&#xff0c;通过THREE.Group类创建一个组对象group,然后通过add方法把网格模型mesh1、mesh2作为设置为组对象g…

【Godot4.3】GraphEdit全解析(1) - 基础介绍

概述 最早系统性的讲述Godot的GraphEdit和GraphNode的教程应该是Hi小胡的了&#xff0c;也有小伙伴已经设计出一些插件或小应用用于辅助自己的项目。或者更直观的你可以去看看B站的Godot的Visual Shader教程。 我是学了好几次&#xff0c;学完就忘了用&#xff0c;本篇是基于…

Java只有国人在搞了?

从Java诞生到现在&#xff0c;在全球一直属于最大的开发平台&#xff0c;拥有着世界上最多的开发者和最活跃的社区。你说Java只有国人在搞就有点过分了&#xff0c;Java中常用的主流框架全是外国人写的&#xff0c;虽说阿里也为Java做了很多贡献&#xff0c;但你还真没有资格说…

代码随想录Day 52|题目:101.孤岛的面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part03题目一&#xff1a;101.孤岛的总面积解题思路DFS**BFS** 题目二&#xff1a;102. 沉没孤岛解题思路 题目三&#xff1a;103. 水流问题解题思路优化 题目四&#xff1a;104.建造最大岛屿…

Windows11+Microsoft MPI v10.1.3 安装配置记录

WindowsMicrosoft MPI v10.1.3 安装配置记录 MS-MPI 安装VS中进行配置属性管理器-添加新项目属性表VC目录-包含目录链接器-常规-附加库目录链接器-输入-附加依赖项 测试 某个项目需要MPI支持&#xff0c;在此记录MS MPI的安装配置过程。 MS-MPI 安装 在微软官网下载 两个都下…

去中心化的力量:探索Web3的分布式网络

Web3作为一种新兴的网络架构&#xff0c;代表了对互联网发展的一种探索。与传统的中心化互联网模式相比&#xff0c;Web3致力于通过去中心化的方式构建更加开放和透明的数字世界。本文将探讨Web3的核心理念、技术实现及其潜在应用。 一、去中心化的核心理念 Web3的去中心化理…