在Python中把一维数组转化为二维数组的方法

1,792 阅读5分钟

NumPy为声明数组和处理数组中的数字信息提供了一系列有效而快速的方法。尽管在一个特定的Python列表中存在几种数据类型,但NumPy数组中的每个成员都将是同质的。如果数组没有被同质化,那么打算在其上执行的算术运算可能会非常无效。

NumPy数组比Python列表更简洁、更高效。NumPy将信息存储在一个小得多的存储器中,并且还包含一个定义数据类型的方法。NumPy库的集中式数据结构是一个数组。数组是一组属性,提供了关于原始信息的数据,在哪里和如何找到项目,以及如何理解它们。它也有一个组件的框架,将通过使用不同的方法来组织。

数组的数据类型与所有的项目都来自相同的类型有关。 数组的形式是一组整数,表示数组的每个元素的尺寸。在这篇文章中,我们将解释众多用于将一维数组转化为二维数组的方法。

使用reshape()函数将一维数组转化为二维数组

修改一个数组的布局被称为重塑。每个维度内的组件数量定义了数组的形式。我们可以通过使用重塑来增加或删除参数或调整每个维度内的项目数量。

为了修改NumPy ndarray的布局,我们将使用reshape()方法。任何形式的转换都是可以实现的,甚至从一维数组切换到二维数组。当我们要使用-1时,会立即计算出维度的测量。

import numpy as np

import matplotlib.pyplot as plt

 

x = np.arange(6)

print(x)

print(x.reshape(2, 3))

print(x.reshape(-1, 3))

print(x.reshape(2, -1))

当我们处理数值时,我们必须在代码中导入NumPy库的np,这样我们就可以很容易地执行数值函数,同时我们通过使用matplotlib.pyplot库的plt来管理数字和图形。 plt "是主 "matplot "库的一个子库,因为我们需要一些特定的函数,而不是所有的库。整个库比子库占用更多的空间,NumPy的情况也是如此,如np。

之后,我们得到一个变量并初始化这个被称为'x'的变量,我们通过使用函数np.arrange()分配一个值。这个函数来自'np'库,名为arrange,我们传递一个值作为函数的参数。我们采用这个方法来创建基于数字值的数组。它构造了一个具有等距元素的ndarray的图示,并提供了对它的访问。之后,我们只需打印这个数组,这个数组的结果就显示在输出中。

接下来,我们要调用reshape()函数来改变这个数组。reshape()函数接收一个也叫一维数组的单一数组,并将其转变为一个有一列的二维数组。这个函数的参数是由数据形状决定的,接下来是针对第二维的。

使用np.array()函数将一维数组转化为二维数组

在Python语言中,可以利用np.array()函数实现这一目的。我们可以将一个列表转化为NumPy.ndarray,通过使用reshape()函数对其进行修改,之后用NumPy将其还原为一个集合。

import numpy as np

import matplotlib.pyplot as plt

 

list = [2, 4, 6, 8, 10, 12]

print(np.array(list).reshape(-1, 3).tolist())

 

print(np.array(list).reshape(3, -1).tolist())

在我们代码的前两行,我们已经包含了所需的库NumPy作为np和matplotlib.pyplot作为plt。 现在我们开始主代码,在这里我们定义了1d数组的元素,这个列表包含从2到12的偶数。然后我们在两行中利用了np.array()和reshape()这两个函数,参数不同。

在第一行中,我们将-1和3作为参数传给函数reshape()。这意味着每个数组包含三个元素。另一方面,3和-1被提供作为reshape()函数的参数,这表明有三组元素。

使用List Comprehensions将一维数组转移到二维数组

我们可以在Python中把一维数组转换为二维数组,而不是利用NumPy和应用列表理解法。

import numpy as np

import matplotlib.pyplot as plt

 

def convert_1d_to_2d(l, cols):

return [list[j:j + cols] for j in range(0, len(list), cols)]

 

list = [10, 20, 30, 40, 50, 60]

print(convert_1d_to_2d(list, 2))

 

print(convert_1d_to_2d(list, 3))

print(convert_1d_to_2d(list, 4))

在导入'NumPy'和'matplotlib.pyplot'库后,我们定义了一个函数'convert_1d_to_2d()'。使用这个函数的目的是将一维数组转换为二维数组,这里我们传递了一行和一列。我们通过调用list()函数返回一个列的排列位置的列表。我们通过在len()函数中传递参数来列举这些元素。

然后我们初始化了一个列表,并通过使用print语句以三种不同的方式打印了它。首先,我们做了三个有两个元素的数组。在第二种情况下,我们做了两个有三个元素的数组。然而,在最后一种情况下,数组有四个和两个元素。

最初的列表是第一个参数,而最里面的列表中的一系列条目是第二个参数。当有余数时,就像前面的例子一样,包括一组独特的项目的数组将被保留。

总结

在这篇文章中,我们看了三种在Python中把一维数组转化为二维数组的独特技术。NumPy数组提供了高计算格式,在数值计算中比Python的原生数组数据集表现得更好。当一个一维数组被塑造成一个二维数组时,它被划分成一个具有所需数字集的数组。