NumPy 数组重塑指南

2023-10-13

The NumPyPython 中的库提供了强大的功能来重塑数组的维度,这就是我们将在本教程中深入探讨的内容。

在整个教程中,我们将介绍 NumPy 数组重塑的含义及其重要性,然后再深入研究如何重塑不同维度的数组的细节。

在本教程结束时,您将熟练地重塑 NumPy 数组并了解如何将这些技术应用于现实世界的数据操作任务。

 

 

为什么重塑功能至关重要?

在 NumPy 中重塑数组是一项关键操作,尤其是在数据科学和机器学习领域。

它允许您重组数据以适应可能需要特定维度或形状输入的不同算法。值得注意的是,reshape函数不会改变数组的原始数据,保证了数据的完整性。
例如,某些机器学习模型可能要求输入位于二维数组中,即使只有一个特征。

在这种情况下,重塑允许您将一维数组转换为二维数组。

它通常返回原始数组的视图,这意味着它不会复制数据,而是提供一种新的索引方式。

这使您可以有效地处理大型数据集,而无需担心内存使用情况。

 

numpy.reshape() 函数

The reshape()NumPy 中的函数用于更改数组的形状。它将您要为数组指定的新形状作为其第一个参数,该形状应与原始数组的形状兼容。

这意味着原始数组中的元素总数应与重构数组中的元素总数相同。
这是一个简单的例子:


import numpy as np

# original array
arr = np.array([0, 1, 2, 3, 4, 5])
print("Original Array: ", arr)

# reshaping the array
reshaped_arr = np.reshape(arr, (3, 2))
print("Reshaped Array: \n", reshaped_arr)
  

Output:


Original Array:  [0 1 2 3 4 5]
Reshaped Array: 
 [[0 1]
 [2 3]
 [4 5]]
  

在上面的例子中,我们使用了np.reshape改变一维数组形状的方法arr到二维数组。

新的数组,reshaped_arr,是一个形状为 (3, 2) 的二维数组,这意味着它有 3 行和 2 列。这np.reshape方法将要重塑的数组作为其第一个参数,并将新形状作为其第二个参数。
重构后的数组仍然引用内存中与原始数组相同的数据,这意味着对原始数组的更改将反映在重构后的数组中,反之亦然。

 

NumPy 重塑顺序(索引顺序)

在重塑数组时,NumPy 以不同顺序或重新排列元素的方式提供灵活性。最常用的是“C”、“F”和“A”顺序。

  • ‘C’顺序,或C风格顺序,意味着以C语言风格进行行上升操作。
  • “F”顺序,或 Fortran 风格的顺序,意味着操作是按列进行的。
  • “A”顺序也称为保留顺序,表示如果数组在内存中是 Fortran 连续的,则使用“F”,否则使用“C”。

它们的工作原理如下:


import numpy as np

# original array
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Original Array: \n", arr)

# using reshape with C order
reshaped_c_arr = np.reshape(arr, (3, 2), order='C')
print("Reshaped Array in C order: \n", reshaped_c_arr)

# using reshape with F order
reshaped_f_arr = np.reshape(arr, (3, 2), order='F')
print("Reshaped Array in F order: \n", reshaped_f_arr)

# Using reshape with A order
reshaped_a_arr = arr.reshape(3, 2, order='A')
print("Reshaped Array in A order: \n", reshaped_a_arr)
  

Output:


Original Array: 
[[1 2 3]
[4 5 6]]
Reshaped Array in C order: 
[[1 2]
[3 4]
[5 6]]
Reshaped Array in F order: 
[[1 3]
[5 2]
[4 6]]
Reshaped Array in A order: 
[[1 2]
[3 4]
[5 6]]
  

在此示例中,原始二维数组arr使用 C 和 F 阶将其重塑为 3×2 数组。以 C 顺序重塑时 (reshaped_c_arr),数组按行读取,就像从左到右,然后从上到下读取英文文本一样。

另一方面,当按 F 阶重塑时 (reshaped_f_arr),数组按列读取,从第一列开始,然后继续下一列。

在 reshape 函数中指定 order 参数允许您决定从原始数组中取出元素并在新数组中排列的逻​​辑。

 

使用 numpy.ndarray.reshape()

The numpy.ndarray.reshape()方法是一个实例方法,其行为类似于numpy.reshape()功能。
让我们看看它是如何工作的:


import numpy as np

# original array
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print("Original Array: ", arr)

# reshaped array
reshaped_arr = arr.reshape(2, 4)
print("Reshaped Array: \n", reshaped_arr)
  

Output:


Original Array:  [1 2 3 4 5 6 7 8]
Reshaped Array: 
 [[1 2 3 4]
 [5 6 7 8]]
  

这里,原始的一维数组arr被重塑为二维数组reshaped_arr通过使用 ndarray 的 reshape 方法。

重构后的数组reshaped_arr现在有两行和四列。新形状 (2, 4) 直接传递给 reshape 方法,无需包含在元组中,这在使用 ndarray 的 reshape 方法进行重塑时是允许的。

 

numpy.ndarray.reshape() 与 numpy.reshape()

它们的功能本质上是相同的,但用法略有不同。

The numpy.ndarray.reshape是 ndarray 类的一个方法,这意味着它是每个 ndarray 对象都拥有并且可以使用的函数。它不是一个独立的函数,而是在一个数组对象上调用。这是一个例子:


import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape((2, 3))  

因此,它们之间的区别实际上只是在于您如何称呼它们。

numpy.reshape被调用为一个以数组为参数的函数,并且numpy.ndarray.reshape作为数组对象上的方法调用。

 

将一维数组重塑为二维数组

您可以使用 reshape 方法将一维数组重塑为二维数组。操作方法如下:


import numpy as np

# original 1d array
arr_1d = np.array([1, 2, 3, 4, 5, 6])
print("Original 1d Array: ", arr_1d)

# reshaping to 2d array
arr_2d = arr_1d.reshape((3, 2))
print("Reshaped 2d Array: \n", arr_2d)
  

Output:


Original 1d Array:  [1 2 3 4 5 6]
Reshaped 2d Array: 
 [[1 2]
 [3 4]
 [5 6]]
  

在这里,我们已经转换了一维数组,arr_1d,进入二维数组,arr_2d,通过使用重塑方法。

我们传递一个元组(3, 2)作为 reshape 方法的参数,表明我们要将数组转换为 3 行 2 列的二维数组。得到的数组,arr_2d,体现了新的形状。

 

将 2-D 数组重塑为 3-D 数组

现在让我们看一下将 2 维数组重塑为 3 维数组。当处理更复杂的数据(例如图像或多变量时间序列数据)时,这非常有用。


import numpy as np

# original 2d array
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("Original 2d Array: \n", arr_2d)

# reshaping to 3d array
arr_3d = arr_2d.reshape((2, 1, 3))
print("Reshaped 3d Array: \n", arr_3d)
  

Output:


Original 2d Array: 
 [[1 2 3]
 [4 5 6]]
Reshaped 3d Array: 
 [[[1 2 3]]
 [[4 5 6]]]
  

在这个例子中,我们重塑了一个二维数组,arr_2d,进入 3 维数组,arr_3d。我们传递了一个元组(2, 1, 3)到 reshape 方法,它表示我们要将数组转换为三维数组,其中第一维有 2 个元素,第二维有 1 个元素,第三维有 3 个元素。这会产生一个 3d 数组,arr_3d.

 

将一维数组重塑为多维数组

还可以将一维数组重塑为多维数组。例如,一维数组可以重塑为 3 维数组,如下例所示:


import numpy as np

# original 1d array
arr_1d = np.array([1, 2, 3, 4, 5, 6])
print("Original 1d Array: ", arr_1d)

# reshaping to 3d array
arr_3d = arr_1d.reshape((2, 1, 3))
print("Reshaped 3d Array: \n", arr_3d)
  

Output:


Original 1d Array:  [1 2 3 4 5 6]
Reshaped 3d Array: 
 [[[1 2 3]]
 [[4 5 6]]]
  

在上面的例子中,一维数组arr_1d被重塑为 3 维数组arr_3d。 reshape 方法需要一个元组(2, 1, 3)指定新数组所需的形状。

重构后的数组arr_3d现在有两个块,每个块包含一行三个元素。

 

使用 -1 重塑(未知尺寸)

重塑数组时,您可以使用-1在您指定的新形状中,这让 NumPy 自动计算该尺寸的大小-1.

当您知道某些维度的形状并希望 NumPy 计算出剩余维度时,这会很方便。
这是一个例子:


import numpy as np

# original 1d array
arr_1d = np.array([1, 2, 3, 4, 5, 6])
print("Original 1d Array: ", arr_1d)

# reshaping with -1
arr_2d = arr_1d.reshape((3, -1))
print("Reshaped 2d Array: \n", arr_2d)
  

Output:


Original 1d Array:  [1 2 3 4 5 6]
Reshaped 2d Array: 
 [[1 2]
 [3 4]
 [5 6]]
  

在这种情况下,原始数组arr_1d被重塑为二维数组arr_2d using -1。传递元组时(3, -1)对于 reshape 方法,我们指定希望新数组具有三行,并让 NumPy 计算保留原始数组中元素数量所需的列数(在本例中为 2)。

 

将 4 维数组重塑为 2 维数组

从 4 维数组重塑为 2 维数组也很常见,特别是在处理图像数据时,我们经常处理批量的多个图像。


import numpy as np

# Create a 4-D array of shape (2, 2, 3, 3)
arr_4d = np.random.randint(10, size=(2, 2, 3, 3))
print("Original 4-D Array: \n", arr_4d)

# Reshape 4-D array to 2-D array
arr_2d = arr_4d.reshape(-1, arr_4d.shape[-1])
print("\nReshaped 2-D Array: \n", arr_2d)
  

Output:


Original 4-D Array: 
 [[[[8 2 9]
   [8 6 5]
   [7 8 0]]

  [[6 0 0]
   [5 2 4]
   [2 1 9]]]


 [[[4 9 2]
   [4 5 1]
   [2 3 9]]

  [[2 3 3]
   [6 9 1]
   [8 1 3]]]]

Reshaped 2-D Array: 
 [[8 2 9]
 [8 6 5]
 [7 8 0]
 [6 0 0]
 [5 2 4]
 [2 1 9]
 [4 9 2]
 [4 5 1]
 [2 3 9]
 [2 3 3]
 [6 9 1]
 [8 1 3]]
  

原始数组的形状为 (2, 2, 3, 3),我们希望将其重塑为二维数组,并保持最后一个维度不变。

因此,我们使用了-1对于新形状的第一个维度,以及arr_4d.shape[-1]对于第二个维度。

结果是一个二维数组,其中第一个维度由 NumPy 推断,第二个维度与原始数组的最后一个维度相同。

 

NumPy 数组重塑的真实示例

NumPy 数组重塑是数据处理和机器学习中的基本操作。例如:

  • 图像处理:Python 中加载的图像会变成 NumPy 数组,并且通常需要重新整形。例如,形状(宽度、高度、3)的彩色图像在输入神经网络进行训练之前可能需要重新整形为一维数组。
  • 神经网络:神经网络的输入层通常需要特定形状的数据。因此,重塑允许以一定大小的批次馈送数据。

这是图像处理中重塑的一个简单示例:


from PIL import Image
import numpy as np
img = Image.open('image.jpg')

# Convert image to a NumPy array
img_arr = np.array(img)
print("Original Image Shape: ", img_arr.shape)

# Reshape the image array
reshaped_img_arr = np.reshape(img_arr, -1)
print("Reshaped Image Array Shape: ", reshaped_img_arr.shape)
  

Output:


Original Image Shape: (800, 800, 3)
Reshaped Image Array Shape: (1920000,)  

在此示例中,我们使用 PIL 库打开图像并将其转换为 NumPy 数组img_arr.

原来的形状是img_arr将为(高度、宽度、通道),其中通道表示 RGB 值。

然后使用以下命令重塑图像阵列numpy.reshape()函数转换为一维数组reshaped_img_arr,然后可以用作机器学习算法的输入。

 

F.A.Q

问:如何将一维 numpy 数组重塑为二维数组?

答:您可以使用 numpy reshape() 函数将一维数组转换为二维数组。该函数用于改变数组的形状而不改变其数据。

例如,如果您有一个包含 8 个元素的数组,则可以使用 reshape(2,4) 将其转换为两行四列的二维数组。

 

问:numpy reshape() 函数中数组形状参数的作用是什么?

答:numpy reshape 函数中的数组形状参数指定要将数组重塑为的新形状。

具体来说,它是一个元组,指示新数组每个维度的元素数量。新形状中的元素总数应与原始形状兼容。

 

问:如何使用 numpy reshape 将二维数组转换为一维数组?

答:您可以使用 reshape() 函数将二维数组转换为一维 numpy 数组,并将 -1 作为新的形状参数。

这告诉 NumPy 根据原始数组大小计算尽可能大的维度大小,以容纳数组的所有元素。

 

问:在重塑 NumPy 数组时,类 C 和类 Fortran 索引顺序意味着什么?

答:类 C(“C”顺序或以 C 编程语言命名)意味着数组按行重新整形。这也称为行主序。这是 NumPy 中的默认顺序。

类似 Fortran(“F”顺序或以 Fortran 编程语言命名)意味着数组按列重新整形。您可以使用 order 参数在 numpy reshape 中指示这些选项。

 

问:我可以使用 numpy reshape 添加或删除维度吗?

答:是的,您可以使用 numpy reshape 添加或删除数组的维度。例如,您可以将 3D 数组转换为 2D 数组(删除维度)。

 

问:我有一个 3 维数组,我想将其转换为 2 维数组。我应该考虑什么?

答:使用 numpy reshape 将 3 维数组转换为 2 维数组时,需要确保 2 维数组中的元素总数与 3 维数组中的元素总数相同。例如,如果您有一个形状为 (2, 3, 4) 的 3 维 numpy 数组,则可以将其重塑为形状为 (6, 4) 的二维数组。

 

问:重塑 ndarray 时数组索引如何工作?

答:数组索引基于 ndarray 的形状进行工作。当您使用 reshape 更改 NumPy 数组的形状时,数组中的原始数据将根据新形状重新对齐,但数组中元素及其索引之间的映射将被保留。这是根据“C”或 Fortran 内存布局完成的,具体取决于您指定的内容。

 

问:当我们说新形状“与原始形状兼容”时,是什么意思?

答:当我们重塑 NumPy 数组时,与原始形状兼容意味着新形状的元素总数与原始数组中的元素总数相匹配。

例如,如果您有一个包含 8 个元素的数组,则它与也包含 8 个元素的任何其他形状兼容(例如 (2,4)、(4,2) 或 (8,1))。

 

问:在 reshape NumPy 数组中,他们提到了 reshape(-1, 1) 的使用。那有什么作用?

答:NumPy 中的 reshape(-1, 1) 用于将数组转换为具有一列和所需行数的 2D numpy 数组。

-1 是一个特殊值,它告诉 NumPy 计算尽可能大的维度大小以容纳数组的所有元素。

 

进一步阅读

https://numpy.org/doc/stable/reference/ generated/numpy.reshape.html

https://numpy.org/doc/stable/reference/ generated/numpy.ndarray.reshape.html

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

NumPy 数组重塑指南 的相关文章

  • 可以跳过“不返回”吗?

    我想知道跳过是否是一种不好的方式return None 当不需要时 Example def foo1 x if some condition return Baz x else return None def foo2 x if some
  • VS Code Python autopep8 不支持 2 个空格悬挂缩进

    我正在尝试让 autopep8 正常工作 以 2 个空格而不是 4 个空格正确缩进 Python 代码 我正在使用带有 Python 扩展的 VS Code 该扩展使用 autopep8 进行格式化 我发现here https stacko
  • 如何有效地将多个 pandas 列组合成一个类似数组的列?

    使用对象类型列之类的东西创建 或加载 DataFrame 很容易 如下所示 In pdf pd DataFrame a 1 2 3 b 4 5 6 c 7 8 9 combined 1 4 7 2 5 8 3 6 9 Out a b c c
  • Python:文本覆盖在所有窗口顶部,包括 Linux 中的全屏

    我正在尝试用 python 编写一个简单的脚本 在所有窗口和全屏应用程序之上输出文本 该脚本的目的是以类似于 Steam FPS 计数器工作方式的方式输出平均负载和可用内存 以及其他有用的统计数据 到目前为止 我尝试了 pygame 但据我
  • 有没有办法在 ggplot 中绘制 pandas 系列?

    我正在尝试 pandas 和非 matplotlib 绘图 好的建议是here http pandas pydata org pandas docs stable ecosystem html 这个问题涉及到yhat 的 ggplot ht
  • 如何从 TKinter 和 SQLite3 中的列表框中删除行

    我试图弄清楚如何从列表框和 sqlite3 中删除一行 我的底部有一个 delButton 函数 我需要从列表框和sql中删除该行吗 我不确定我在这里做什么 就删除部分而言 我通过复制和粘贴各种示例将该功能放在一起 from Tkinter
  • 继续在文件的同一行写入

    我已经使用以下命令打开了要写入的文件 data open input a 使用循环 我想在同一行中向文件写入一些单词 在每次循环迭代之后我想添加一个换行符 while loop for loop do something if some c
  • Python:将字典转换为字节

    我正在尝试将字典转换为字节 但在将其转换为正确的格式时遇到问题 首先 我尝试使用自定义架构映射字典 模式定义如下 class User def init self name None code None self name name sel
  • 匹配所有 utf-8/unicode 小写字母形式的正确正则表达式是什么

    我想匹配all拉丁语块中的小写字母形式 简单的 a z 仅匹配 U 0061 和 U 007A 之间的字符 而不匹配所有其他小写形式 我想匹配所有小写字母 最重要的是 EFIGS 语言中使用的拉丁语块中的所有带重音的小写字母 a z 是一个
  • “scipy.misc”没有属性“imsave”

    当我尝试使用 Scipy misc imsave path image 保存图像时 我收到此错误 模块 scipy misc 没有属性 我正在使用 Ubuntu 17 10 并且安装了 Pillow 和 scipy 你能帮我吗 scipy
  • 隐藏控制台窗口

    problem 我开始使用 Python 和 Tkinter 设计 GUI 应用程序 当我使用 cxFreeze 冻结脚本时 然后当我在计算机上运行该 EXE 文件时 然后首先打开控制台窗口 在 Windows XP 中为黑色 DOS sh
  • python 解码部分 utf-8 字节数组

    我从不了解 UTF 8 规则的通道获取数据 因此 有时当 UTF 8 使用多个字节来编码一个字符并且我尝试将部分接收到的数据转换为文本时 我在转换过程中遇到错误 根据接口的性质 没有任何结束的流 我无法找出数据何时已满 因此我需要处理部分
  • Python 单行代码

    我想要用 Python 编写以下代码的单行解决方案 但是如何实现呢 total 0 for ob in self oblist total sum v amount for v in ob anoutherob 它返回总价值 我想要它是单行
  • 绘制顶部有函数线的直方图

    我正在尝试使用 SciPy 进行统计 使用 matplotlib 进行绘图 在 Python 中进行一些分布绘图和拟合 我在创建直方图等方面运气很好 seed 2 alpha 5 loc 100 beta 22 data ss gamma
  • django 序列化器到 json - 自定义 json 输出格式

    我对 django 很陌生 最近我需要 JSON 输出 为此我使用以下 django 代码 data serializers serialize json Mymodel objects all 它工作得很好 除了我得到的输出 pk 897
  • 如何在 Pandas 的时间序列图上绘制垂直线?

    如何绘制垂直线 vlines 在熊猫系列情节中 我正在使用 Pandas 绘制滚动平均值等 并且想用垂直线标记重要位置 是否可以使用vlines或类似的东西来完成这个 在这种情况下 x 轴是datetime plt axvline x po
  • 如何在 Flask 之外使用 jinja2 及其 i18n 扩展(使用 babel)

    如何在 Flask 应用程序之外将 jinja2 与 babel 一起使用 假设我有使用 pybabel 命令填充的语言环境目录 我想加载翻译文件并翻译我的模板文件 我找到了解决方案 以下是如何在不集成 Flask 的情况下使用 jinja
  • 如何使用 numpy 数组加速分形生成?

    这是我为使用牛顿方法制作分形而编写的一个小脚本 import numpy as np import matplotlib pyplot as plt f np poly1d 1 0 0 1 x 3 1 fp np polyder f def
  • 如何从具有另一个环境的另一个脚本运行一个具有其环境的Python脚本?

    我有两个脚本 script1 py and script2 py script1 有它自己的环境 比如 python 2 而 script2 有它自己的环境 比如 python 3 如何使脚本 1 调用脚本 2 及其相应的环境 Thanks
  • 加载视频数据集(Keras)

    我正在尝试实现 LRCN C LSTM RNN 来对视频中的情绪进行分类 我的数据集结构分为两个文件夹 train set 和 valid set 当你打开其中任何一个时 你可以找到3个文件夹 积极 消极 和 惊喜 最后 这 3 个文件夹中

随机推荐

  • 在屏幕上绘图

    在本课程中 您将开始使用Surface 回想一下 一个表面是一个可以在其上绘图的矩形对象 就像一张白纸 这screen对象是一个Surface 并且您可以创建自己的Surface与显示屏分离的物体 您将用白色填充屏幕 并添加一个新的Surf
  • 数据科学数学

    数据科学数学 学习路径 技能 统计 相关性 线性回归 逻辑回归 在这个学习路径中 您将获得在数据科学方面取得进步所需的数学基础 其他资源 真正的 Python 数据科学主题 真正的 Python 机器学习主题 数据科学数学 学习路径 5 种
  • Python 基础练习:文件系统操作(概述)

    In Python 基础知识 文件系统操作 您学习了如何使用 Python 处理文件和文件夹 作为一名程序员 您将使用pathlib和shutil要完成的模块文件系统操作不依赖你的图形用户界面 GUI 虽然您已经进行了大量文件系统操作的实践
  • 使用 Python 和 ggplot 绘制数据图表

    在本课程中 您将学习如何使用ggplot在Python中使用创建数据可视化图形语法 图形语法是一种高级工具 可让您以高效且一致的方式创建数据图 它抽象了最底层的细节 让您专注于为数据创建有意义且美观的可视化效果 有几个 Python 包提供
  • MicroPython 入门(概述)

    您对物联网 家庭自动化和互联设备感兴趣吗 你有没有想过建造一把爆能枪 一把激光剑 甚至你自己的机器人会是什么样子 如果是这样 那么您很幸运 微Python可以帮助您完成所有这些事情以及更多 在本课程中 您将了解 这历史微Python的 这差
  • Jupyter 终端及更多

    Jupyter Notebooks 不仅可以让您启动笔记本 在本课程中 您将学习如何启动新终端以及如何在浏览器中创建文件夹或文件
  • 2021 年 8 月 11 日

    主持人大卫 阿莫斯回答会员的问题 本周 Real Python 社区经理 Andres Pineda 也加入了 David 的行列 在这次会议上 我们讨论了 Python 新闻和更新 如何开始使用 Python 进行日志记录 如何学习编写更
  • 适合 Python 程序员的 C

    目录 The C Preprocessor 包括 定义 undef if pragma 错误 Basic C Syntax for Python Programmers 一般的 if 语句 switch 语句 循环 功能 指针 弦乐 结构体
  • 关于约翰·斯特茨

    关于约翰 斯特茨 John 是一位狂热的 Python 爱好者 也是 Real Python 教程团队的成员 约翰的教程 Python 中的模字符串格式化 Python 中的递归 简介 Python 中的函数式编程 何时以及如何使用它 Py
  • pandas 排序方法入门

    有关这些视频中使用的 REPL 的更多信息 您可以查看蟒蛇以及真正的 Python 教程探索 bpython 具有类似 IDE 功能的 Python REPL
  • 漂亮的印花

    此外print Python 包括一个漂亮的印刷品方法 此方法对于以更易于阅读的格式输出有关对象的调试信息特别有用 gt gt gt gt gt gt from pprint import pprint gt gt gt data squa
  • Python 新闻:2021 年 12 月以来的新增内容

    目录 Python 指导委员会选举 Python 新版本 Python 3 6 生命周期结束 代码的出现 Python 的下一步是什么 In 2021 年 12 月 第四个Python指导委员会像往常一样 由新成员和回归成员组成 Pytho
  • 第 12 集:Python 中的网页抓取:工具、技术和合法性

    第 12 集 Python 中的网页抓取 工具 技术和合法性 真正的 Python 播客 2020年6月5日50公尺 RSS Apple Podcasts Google Podcasts Spotify More 播客瘾君子 灰蒙蒙 袖珍铸
  • 列表:有序和任意

    您已经了解了如何创建列表 在本课程中 您将了解到列表是有序的并且可以包含任意对象的集合 定义列表时使用的顺序在列表的生命周期内保持不变 包含相同元素但顺序不同的列表是不同的 gt gt gt gt gt gt a spam egg baco
  • 在“for”循环中使用 .append() 进行附加处理

    有关本课程所涵盖概念的更多信息 您可以查看 Python enumerate 简化需要计数器的循环 真正的Python文章 Python for 循环 确定迭代 真正的Python文章
  • 设计和指导:Python 中的 OOP(概述)

    编写优秀的面向对象代码不仅仅是如何编写 句法 知道何时和何时不使用它 以及指导原则 在后面面向对象设计将帮助您编写更好的代码 在本课程中 您将了解 中的面向对象方法Python 与其他语言 您的情况不应该使用Python 中的类 继承的替代
  • 使用 Sed 命令在 Linux 中追加文本

    Sed提供根据特定模式或条件将文本附加到文件中的行的能力 您可以使用a 命令输入sed在模式匹配后添加新行 让我们深入研究现实世界的示例 以了解如何有效地利用此功能 目录 hide 1 在匹配的模式后添加一行 2 在匹配的模式后追加多行 3
  • Linux Web 服务器 (Apache) 的安装、配置和故障排除

    在本教程中 我们将具体讨论 Linux Web 服务器或 Apache Web 服务器 以及如何安装和配置它以向其他人提供您的内容 Web 服务器是一个通过 HTTP 协议处理请求的系统 您向服务器请求一个文件 它会响应所请求的文件 这可能
  • 使用 Curl 命令的 RESTful API 交互

    主要用途之一curl与 RESTful API 进行交互 RESTful API 是许多现代 Web 应用程序和服务的支柱 在本教程中 您将学习如何使用 RESTful API 进行交互卷曲命令 获取数据 发布信息以及解析各种响应 目录 h
  • NumPy 数组重塑指南

    The NumPyPython 中的库提供了强大的功能来重塑数组的维度 这就是我们将在本教程中深入探讨的内容 在整个教程中 我们将介绍 NumPy 数组重塑的含义及其重要性 然后再深入研究如何重塑不同维度的数组的细节 在本教程结束时 您将熟