NumPy arange():如何使用 np.arange()

2023-10-11

数值模拟是数值计算的基本 Python 库。它最重要的类型是数组类型被称为ndarray。 NumPy 提供了很多数组创建例程对于不同的情况。arange()就是这样一个基于的函数数值范围。它通常被称为np.arange()因为np是 NumPy 广泛使用的缩写。

当您使用依赖于 NumPy 数组的其他 Python 库时,创建 NumPy 数组非常重要,例如科学Py, 熊猫, Matplotlib、scikit-learn 等等。 NumPy 适合创建和使用数组,因为它提供有用的例程, 使性能提升,并允许你写简洁的代码.

读完本文,您将了解:

  • 什么np.arange() is
  • 如何使用np.arange()
  • 如何np.arange()与 Python 内置类相比范围
  • 哪些套路类似np.arange()

让我们来看看np.arange()在行动!

免费奖金: 单击此处获取免费的 NumPy 资源指南这将为您提供提高 NumPy 技能的最佳教程、视频和书籍。

返回值及参数np.arange()

数值模拟arange()是基于数值范围的数组创建例程之一。它创建一个实例ndarray均匀分布的值并返回对其的引用。

您可以使用以下四个参数定义数组中包含的值的间隔、它们之间的空间以及它们的类型arange():

numpy.arange([start, ]stop, [step, ], dtype=None) -> numpy.ndarray

前三个参数确定值的范围,而第四个参数指定元素的类型:

  1. start是个数字(整数或小数)定义数组中的第一个值。
  2. stop是定义数组末尾且不包含在数组中的数字。
  3. step是定义数组中每两个连续值之间的间距(差异)的数字,默认为1.
  4. dtype是输出数组元素的类型,默认为没有任何.

step不能为零。否则,你会得到一个ZeroDivisionError。你无法离开任何地方start如果增量或减量是0.

If dtype被省略,arange()将尝试从数组元素的类型中推断出数组元素的类型start, stop, 和step.

您可以找到有关参数和返回值的更多信息arange()在里面官方文档.

范围参数np.arange()

NumPy 的参数arange()定义数组中包含的值对应于数字参数start, stop, 和step。你必须通过最后一个其中。

以下示例将向您展示如何arange()行为取决于参数的数量及其值。

提供所有范围参数

使用 NumPy 例程时,必须首先导入 NumPy:

>>>
>>> import numpy as np

现在,您已导入 NumPy,并准备好应用arange().

让我们看一下如何使用 NumPy 的第一个示例arange():

>>>
>>> np.arange(start=1, stop=10, step=3)
array([1, 4, 7])

在这个例子中,start1。因此,得到的数组的第一个元素是1. step3,这就是为什么你的第二个值是 1+3,即4,而数组中的第三个值是 4+3,等于7.

按照这种模式,下一个值将是10(7+3),但计数必须结束 stop已达到,所以不包括这一点。

你可以通过start, stop, 和step也作为位置参数:

>>>
>>> np.arange(1, 10, 3)
array([1, 4, 7])

此代码示例与前一个示例等效,但比前一个更简洁。

的价值stop不包含在数组中。这就是为什么你可以用不同的方法获得相同的结果stop价值观:

>>>
>>> np.arange(1, 8, 3)
array([1, 4, 7])

此代码示例返回与前两个具有相同值的数组。使用任何值都可以获得相同的结果stop严格大于7且小于或等于10.

但是,如果你使stop比...更棒10,那么计数将在之后结束10到达了:

>>>
>>> np.arange(1, 10.1, 3)
array([ 1.,  4.,  7., 10.])

在本例中,您将获得包含四个元素的数组,其中包括10.

请注意,与前一个示例不同,此示例创建了一个浮点数数组。那是因为你没有定义dtype, 和arange()为你推演了。您将在本文后面了解更多相关信息。

您可以在下图中看到这三个示例的图形表示:

NumPy arange() in action

start显示为绿色,stop为红色,同时step数组中包含的值是蓝色的。

从上图可以看出,前两个示例有三个值(1, 4, 和7)算了。他们不允许10被包括。在第三个例子中,stop大于10,并且它包含在结果数组中。

提供两个范围参数

你可以省略step。在这种情况下,arange()使用其默认值1。以下两个语句是等效的:

>>>
>>> np.arange(start=1, stop=10, step=1)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(start=1, stop=10)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

第二个声明较短。step,默认为1,是通常直观的预期。

使用arange()随着增量1是实践中非常常见的情况。同样,您可以使用位置参数更简洁地编写前面的示例startstop:

>>>
>>> np.arange(1, 10)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

这是一种直观且简洁的调用方式arange()。在本例中使用关键字参数并不能真正提高可读性。

笔记:如果您提供两个位置参数,则第一个是start第二个是stop.

提供一个范围参数

您必须提供至少一个论点arange()。更准确地说,您必须提供start.

但如果你省略会发生什么stop?如何arange()知道什么时候停止计数吗?在这种情况下,数组开始于0并在值之前结束start到达了!再次,默认值step1.

换句话说,arange()假设您已经提供了stop(代替start) 然后start0step1.

让我们看一个例子,你想用以下方式开始一个数组0,增加值1,并在此之前停止10:

>>>
>>> np.arange(start=0, stop=10, step=1)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(0, 10, 1)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(start=0, stop=10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(0, 10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

这些代码示例没问题。它们的工作方式如前面的示例所示。还有一种更短、更简洁、但仍然直观的方法来完成同样的事情。您可以只提供一个位置参数:

>>>
>>> np.arange(10)  # Stop is 10, start is 0, and step is 1!
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

这是创建从零开始并以 1 为增量的 NumPy 数组的最常用方法。

笔记:单个参数定义计数停止的位置。输出数组开始于0并且增量为1.

如果您尝试明确提供stop没有start,那么你会得到一个TypeError:

>>>
>>> np.arange(stop=10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: arange() missing required argument 'start' (pos 1)

你收到错误是因为arange()不允许你明确地避免对应的第一个参数start。如果您提供单个参数,那么它必须是start, 但arange()将使用它来定义计数停止的位置。

提供否定论据

如果您为start或两者startstop,并有一个积极的step, 然后arange()将以与所有正参数相同的方式工作:

>>>
>>> np.arange(-5, -1)
array([-5, -4, -3, -2])
>>> np.arange(-8, -2, 2)
array([-8, -6, -4])
>>> np.arange(-5, 6, 4)
array([-5, -1,  3])

此行为与前面的示例完全一致。计数从以下值开始start,重复递增step,并在此之前结束stop到达了。

倒数

有时您需要一个数组,其值从左到右递减。在这种情况下,您可以使用arange()为负值step,并用一个start比...更棒stop:

>>>
>>> np.arange(5, 1, -1)
array([5, 4, 3, 2])
>>> np.arange(7, 0, -3)
array([7, 4, 1])

在此示例中,请注意以下模式:获取的数组以第一个参数的值开始,并递减step朝向第二个参数的值。

在最后的声明中,start7,结果数组以此值开始。step-3所以第二个值为 7+(−3),即4。第三个值是 4+(−3),或者1。自此停止计数stop (0) 在下一个值 (-2).

您可以在下图中看到此示例的图形表示:

NumPy arange() in action

再次,start显示为绿色,stop为红色,同时step数组中包含的值是蓝色的。

这次,箭头显示从右到左的方向。那是因为start大于stop, step是负数,你基本上是在倒数。

前面的示例产生与以下相同的结果:

>>>
>>> np.arange(1, 8, 3)[::-1]
array([7, 4, 1])
>>> np.flip(np.arange(1, 8, 3))
array([7, 4, 1])

然而,具有负值的变体step更加优雅简洁。

获取空数组

在几种边缘情况下,您可以使用以下命令获取空 NumPy 数组:arange()。这些都是常见的例子numpy.ndarray没有任何元素。

如果您为startstop,那么你会得到一个空数组:

>>>
>>> np.arange(2, 2)
array([], dtype=int64)

这是因为计数在值之前结束stop到达了。由于值start等于stop,它也无法被访问并包含在结果数组中。

不寻常的情况之一是当start大于stopstep为正,或者当start小于stopstep是负数:

>>>
>>> np.arange(8, 2, 1)
array([], dtype=int64)
>>> np.arange(2, 8, -1)
array([], dtype=int64)

正如您所看到的,这些示例的结果是空数组,not有错误。

数据类型np.arange()

NumPy 数组中元素的类型是使用它们的一个重要方面。当与arange(),您可以使用参数指定元素的类型dtype.

笔记:以下是有关 NumPy 数组中包含的元素类型的一些要点:

  • NumPy 数组中的所有元素都属于同一类型,称为数据类型(短缺数据类型).
  • NumPy 数据类型比 Python 的内置数字类型提供更多的粒度。
  • 在某些情况下,NumPy dtype 具有与 Python 内置类型名称相对应的别名。
  • 通常,NumPy 例程可以接受 Python 数字类型,反之亦然。
  • 一些 NumPy 数据类型具有依赖于平台的定义。

如果您想了解有关 NumPy 数组的数据类型的更多信息,请阅读官方文档.

你可以随意省略dtype。在这种情况下,arange()将尝试推断结果数组的数据类型。这取决于类型start, stop, 和step,如以下示例所示:

>>>
>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])
>>> x.dtype
dtype('int64')
>>> x.itemsize  # In bytes
8

这里,有一个论点(5) 定义值的范围。它的类型是int。这就是数组的 dtype 的原因x将是 NumPy 提供的整数类型之一。在这种情况下,NumPy 选择int64默认为数据类型。这是 64 位(8 字节)整数类型。

上一示例中的数组与此等效:

>>>
>>> x = np.arange(5, dtype=int)
>>> x
array([0, 1, 2, 3, 4])
>>> x.dtype
dtype('int64')

论据dtype=int 参考Pythonint。它翻译为 NumPyint64或者简单地np.int.

NumPy 为您提供了几种整数固定大小的数据类型,它们在内存和限制方面有所不同:

  • np.int8:8 位有符号整数(来自-128127)
  • np.uint8:8 位无符号整数(来自0255)
  • np.int16:16 位有符号整数(来自-3276832767)
  • np.uint16:16 位无符号整数(来自065535)
  • np.int32:32 位有符号整数(来自-2**312**31-1)
  • np.uint32:32 位无符号整数(来自02**32-1)
  • np.int64:64 位有符号整数(来自-2**632**63-1)
  • np.uint64:64 位无符号整数(来自02**64-1)

如果您想要数组元素的其他整数类型,则只需指定dtype:

>>>
>>> x = np.arange(5, dtype=np.int32)
>>> x
array([0, 1, 2, 3, 4], dtype=int32)
>>> x.dtype
dtype('int32')
>>> x.itemsize  # In bytes
4

现在,生成的数组具有与前一种情况相同的值,但元素的类型和大小不同。论据dtype=np.int32(或者dtype='int32') 强制每个元素的大小x为 32 位(4 字节)。

当您的参数是十进制数而不是整数时,dtype 将是某种 NumPy 浮点类型,在这种情况下float64:

>>>
>>> y = np.arange(5.0)
>>> y
array([0., 1., 2., 3., 4.])
>>> y.dtype
dtype('float64')

最后四个示例中元素的值相同,但数据类型不同。

一般来说,当您至少提供一个浮点参数时arange(),即使其他参数是整数,结果数组也将具有浮点元素:

>>>
>>> np.arange(1, 5.1)
array([1., 2., 3., 4., 5.])
>>> np.arange(1, 5.1).dtype
dtype('float64')
>>> np.arange(0, 9, 1.5)
array([0. , 1.5, 3. , 4.5, 6. , 7.5])
>>> np.arange(0, 9, 1.5).dtype
dtype('float64')

在上面的例子中,start是一个整数,但 dtype 是np.float64因为stop或者step是浮点数。

如果您指定dtype, 然后arange()将尝试生成一个包含所提供数据类型的元素的数组:

>>>
>>> y = np.arange(5, dtype=float)
>>> y
array([0., 1., 2., 3., 4.])
>>> y.dtype
dtype('float64')

论据dtype=float这里翻译为 NumPyfloat64, 那是np.float。它参考Pythonfloat。固定大小的别名float64np.float64np.float_.

当您需要具有较低精度和大小(以字节为单位)的浮点数据类型时,您可以显式指定:

>>>
>>> z = np.arange(5, dtype=np.float32)
>>> z
array([0., 1., 2., 3., 4.], dtype=float32)
>>> z.dtype
dtype('float32')

使用dtype=np.float32(或者dtype='float32') 使数组的每个元素z32 位(4 字节)大。每个元素的大小y是 64 位(8 字节):

>>>
>>> y.itemsize  # In bytes
8
>>> z.itemsize  # In bytes
4

元素之间的区别yz,并且一般在np.float64np.float32,是使用的内存和精度:第一个比后者更大且更精确。

在许多情况下,您不会注意到这种差异。然而,有时这很重要。例如,TensorFlow用途float32 和 int32。同样,当您处理图像时,甚至使用较小的类型,例如 uint8.

什么时候step不是整数,结果可能会不一致浮点运算的局限性.

超越简单范围np.arange()

您可以方便地组合arange()与运算符(如+, -, *, /, **等)和其他 NumPy 例程(例如绝对值()或者罪()) 产生输出值的范围:

>>>
>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])
>>> 2**x
array([ 1,  2,  4,  8, 16])
>>> y = np.arange(-1, 1.1, 0.5)
>>> y
array([-1. , -0.5,  0. ,  0.5,  1. ])
>>> np.abs(y)
array([1. , 0.5, 0. , 0.5, 1. ])
>>> z = np.arange(10)
>>> np.sin(z)
array([ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ,
       -0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849])

当您想要在 Matplotlib 中创建绘图.

如果您需要多维数组,那么您可以组合arange().reshape()或类似的函数和方法:

>>>
>>> a = np.arange(6).reshape((2, 3))
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> a.shape
(2, 3)
>>> a.ndim
2

这就是您可以获得ndarray带有元素的实例[0, 1, 2, 3, 4, 5]重塑将其转为二维数组。

相对比rangenp.arange()

Python有一个内置类range,类似于 NumPyarange()在某种程度上。rangenp.arange()具有与应用和性能相关的重要区别。您会看到它们的差异和相似之处。

两者之间的主要区别在于range是一个内置的Python类, 尽管arange()是属于第三方库 (NumPy) 的函数。

另外,他们的目的也不一样!一般来说,range当你需要时更适合迭代使用Python for 循环。如果你想创建一个 NumPy 数组,并在后台应用快速循环,那么arange()是一个更好的解决方案。

参数和输出

两个都rangearange()具有定义所获得数字范围的相同参数:

  • start
  • stop
  • step

即使在以下情况下,您也可以类似地应用这些参数:startstop是平等的。

然而,当与range:

  • 您必须提供整数参数。否则,你会得到一个TypeError.
  • 您无法指定生成数字的类型。总是如此int.

rangearange()它们的返回类型也有所不同:

  • range创建此类的一个实例,该实例具有与其他序列相同的功能(例如列表和元组),例如隶属度、串联、重复、切片、比较、长度检查等。
  • arange()返回 NumPy 的实例ndarray.

创建序列

您可以申请range创建一个实例list或者tuple在预定义范围内均匀分布的数字。你可能会发现理解力特别适合此目的。

然而,创建和操作 NumPy 数组通常是快点更优雅与使用列表或元组相比。

我们来比较一下创建的性能列表使用针对等效 NumPy 的理解ndarrayarange():

>>>
>>> import timeit
>>> n = 1
>>> timeit.timeit(f'x = [i**2 for i in range({n})]')
>>> timeit.timeit(f'x = np.arange({n})**2', setup='import numpy as np')

对不同的值重复此代码n在我的机器上得到以下结果:

Size: n Time Per Loop: range Time Per Loop: arange() Ratio
1 497 ns 1.14 µs 0.41
10 2.24 µs 1.28 µs 1.74
100 20.0 µs 1.37 µs 14.6
1,000 211 µs 2.92 µs 72.3

这些结果可能会有所不同,但显然,您可以比列表更快地创建 NumPy 数组,但长度非常小的序列除外。 (该应用程序通常会带来额外的性能优势!)

这是因为 NumPy 在 C 级别执行许多操作,包括循环。此外,NumPy 针对向量的使用进行了优化,并避免了一些与 Python 相关的开销。

Pythonfor循环

如果您需要在 Python 中迭代值for循环,然后range通常是更好的解决方案。根据Python官方文档:

的优点range键入常规内容list或者tuple那是一个range对象将始终占用相同(少量)的内存,无论它表示的范围大小如何(因为它只存储start, stopstep根据需要计算单个项目和子范围的值)。 (来源)

range通常比arange()当在Python中使用时for循环,尤其是当有可能很快跳出循环时。这是因为range根据需要,以惰性方式生成数字,一次一个。

相比之下,arange()生成开头的所有数字。

欲了解更多信息range,你可以检查Python range() 函数(指南)官方文档.

其他基于数值范围的例程

此外arange(),您可以根据数值范围应用其他 NumPy 数组创建例程:

  • 林空间()类似于arange()因为它返回均匀分布的数字。但您可以指定要生成的值的数量以及是否包含端点以及是否一次创建多个数组。
  • 日志空间()地理空间()类似于linspace(),但返回的数字在对数刻度上均匀分布。
  • 网格(), 奥格德(), 和网格()返回表示为数组的点网格。

所有这些功能都有其特点和用例。您可以根据您的需要选择合适的一种。

正如您已经看到的,NumPy 包含更多创建 ndarray 实例的例程.

快速总结

使用 NumPyarange(),你需要导入numpy第一的:

>>>
>>> import numpy as np

下面的表格包含一些示例,总结了如何使用 NumPyarange()。记住各种用途可能会有所帮助:

Example Result
np.arange(start=1, stop=10, step=3) array([1, 4, 7])
np.arange(1, 10, 3) array([1, 4, 7])
np.arange(1, 10, 3, dtype=float) array([1., 4., 7.])
np.arange(1.0, 10, 3) array([1., 4., 7.])
np.arange(0, 1.1, 0.5) array([0. , 0.5, 1. ])
np.arange(2, 6) array([2, 3, 4, 5])
np.arange(5) array([0, 1, 2, 3, 4])
np.arange(-8, -2, 2) array([-8, -6, -4])
np.arange(7, 0, -3) array([7, 4, 1])
np.arange(8, 2) array([])

不要忘记,您还可以通过使用参数指定 NumPy dtypes 来影响数组使用的内存dtype.

结论

您现在知道如何使用 NumPyarange()。功能np.arange()是经常用于创建 NumPy 实例的基本 NumPy 例程之一ndarray。它有四个参数:

  1. start:数组的第一个值
  2. stop:数组结束的地方
  3. step:增量或减量
  4. dtype:数组元素的类型

您还了解了 NumPy 如何arange()与Python内置类的比较range当您创建序列并生成要迭代的值时。

您看到还有其他基于数值范围的 NumPy 数组创建例程,例如linspace(), logspace(), meshgrid(), 等等。

如果您有疑问或意见,请将其放在下面的评论部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NumPy arange():如何使用 np.arange() 的相关文章

随机推荐

  • Python 社区采访迈克尔·肯尼迪

    本周 我们的 Python 社区采访对象正是迈克尔 肯尼迪的跟我聊Python名声 你可能听过他权威的声音 但你知道他的Python故事吗 请继续阅读 了解他使用 Python 的旅程 他遇到交通堵塞时的想法以及他对两个轮子的热爱 瑞奇 欢
  • 关于斯蒂芬·格鲁佩塔

    关于斯蒂芬 格鲁佩塔 推特 领英 个人网站 我当了很多年物理学家 好吧 我仍然是一名物理学家 但我不再以物理学家的身份工作 我在祖国马耳他学习物理和数学 然后在伦敦帝国学院获得光学和成像博士学位 出于必要 我在那里学习了编码 首先使用 MA
  • Django 入门:构建组合应用程序

    Django 是一个功能齐全的 Python Web 框架 可用于构建复杂的 Web 应用程序 在本课程中 您将立即投入并学习姜戈举例来说 您将按照步骤创建一个功能齐全的 Web 应用程序 并在此过程中了解该框架的一些最重要的功能以及它们如
  • 在您自己的 Python 对象中支持“with”语句

    在本课程中 您将学习如何为您自己的 Python 对象实现上下文管理器功能 在这种情况下 您将使用基于类的方法
  • 第 136 集:使用 pyproject.toml 打包 Python 代码并使用 pathlib 列出文件

    第 136 集 使用 pyproject toml 打包 Python 代码并使用 pathlib 列出文件 真正的 Python 播客 2022 年 12 月 9 日54m RSS Apple Podcasts Google Podcas
  • 了解并安装 Kivy

    要了解有关本课程中的概念的更多信息 请查看 Python 虚拟环境 入门 Kivy项目现场
  • 使用 Python、SQLite 和 SQLAlchemy 进行数据管理

    目录 Using Flat Files for Data Storage 平面文件的优点 平面文件的缺点 平面文件示例 Using SQLite to Persist Data 创建数据库结构 使用 SQL 与数据库交互 Structuri
  • NumPy arange():如何使用 np.arange()

    目录 np arange 的返回值和参数 Range Arguments of np arange 提供所有范围参数 提供两个范围参数 提供一个范围参数 提供否定论据 倒数 获取空数组 np arange 的数据类型 使用 np arang
  • 关于奥斯汀·塞帕利亚

    关于奥斯汀 塞帕利亚 推特 GitHub 领英 个人网站 大家好 我是 Austin Cepalia Real Python 的视频教程作者 我目前是罗切斯特理工学院计算机科学学位的一名学生 但当我能够按照自己的节奏完成项目并挑战我对所学内
  • 第 140 集:使用 Polars 加速数据帧

    第 140 集 使用 Polars 加速数据帧 真正的 Python 播客 2023 年 1 月 13 日57m RSS Apple Podcasts Google Podcasts Spotify More 播客瘾君子 灰蒙蒙 袖珍铸件
  • 2020 年 12 月 2 日

    继续上周会议的内容 在本集中我们将深入探讨使用 PyInstaller 创建可安装应用程序的现场演示
  • 第 72 集:从 FastAPI 开始并检查 Python 的导入系统

    第 72 集 从 FastAPI 开始并检查 Python 的导入系统 真正的 Python 播客 2021 年 8 月 6 日45m RSS Apple Podcasts Google Podcasts Spotify More 播客瘾君
  • 回复消息

    在本课程中 您将学习如何让您的机器人做出响应具体消息在一次聊天中 您将通过处理以下内容来添加机器人以前的功能on message 事件 因为一个Client无法区分机器人用户和普通用户帐户之间的区别 您的on message 处理程序应防止
  • 选择记录类型

    数据记录或普通数据对象用于将相关字段分组到一个位置 Python 提供了多种执行此分组的方法 包括使用dict类型 面向对象的机制 例如类和数据类 以及struct图书馆的Struct二进制记录的对象 以下是有关记录 数据类和结构的资源和附
  • Python 中使用 spaCy 进行自然语言处理

    目录 NLP 和 spaCy 简介 安装spaCy 已处理文本的 Doc 对象 句子检测 spaCy 中的令牌 停用词 词形还原 词频 词性标注 可视化 使用 displaCy 预处理函数 使用 spaCy 基于规则的匹配 使用 spaCy
  • 关于盖尔·阿恩·耶勒

    关于盖尔 阿恩 耶勒 推特 GitHub 经过多年思考这个问题我们在哪里 我现在与数据科学和机器学习在挪威奥斯陆 早些时候 我接触过从 Basic Awk Java 和 C 到 Assembly 的所有语言 现在 我很幸运能够用 Pytho
  • 计算机视觉技术

    人脸检测是一种计算机视觉技术 能够识别数字图像中的人脸 这对人类来说很容易 但计算机需要精确的指令 这些图像可能包含许多非人脸的物体 例如建筑物 汽车 动物等 它与其他涉及人脸的计算机视觉技术 例如面部识别 分析和跟踪 不同 面部识别涉及将
  • 2021 年 6 月 16 日

    主持人大卫 阿莫斯回答会员的问题 在这次会议上 我们讨论了 Python 新闻和更新 为什么不能在续行符后发表评论 如何使用括号隐式连接字符串 一些替代的 Python REPL 是什么 如何开始为开源做出贡献 在哪里可以找到 Python
  • 惯用的熊猫:你可能不知道的技巧和功能

    pandas 是一个用于分析 数据处理和数据科学的基础库 这是一个巨大的项目 具有大量的可选性和深度 在本课程中 您将了解如何使用一些较少使用但惯用的 pandas 功能 使您的代码具有更好的可读性 多功能性和速度 包含内容 11 Less
  • 继承和内部原理:Python 中的面向对象编程

    Python 包含编写面向对象代码的机制 其中 数据和对该数据的操作被结构化在一起 这class关键词这就是在 Python 中创建这些结构的方式 类的定义可以是 基于其他类 允许创建层次结构和 促进代码重用 这种机制称为继承 在本课程中