在 Python 中,处理数值数据时,在列表和数组之间进行转换是一项常见任务。从列表转换为数组的过程使我们能够利用 NumPy 等库提供的有效的数值计算和操作。另一方面,在某些情况下,我们需要从一维数组制作二维数组。因此,让我们回顾与数组转换相关的最常见主题。
列表和 NumPy 数组之间的转换
列表和 NumPy 数组之间的转换提供了数据处理的灵活性,并促进了与 Python 中其他数值计算库的无缝集成。
如何将 NumPy 数组转换为 Python 列表
要将 NumPy 数组转换为 Python 列表,可以使用 NumPy 库提供的 tolist()
方法。此方法将 NumPy 数组转换为嵌套的 Python 列表。这是一个示例
import numpy as np
numpy_array = np.array([1, 2, 3, 4, 5])
python_list = numpy_array.tolist()
print(python_list) # Output: [1, 2, 3, 4, 5]
类似地,如果您有一个多维 NumPy 数组,tolist()
方法会将其转换为嵌套的 Python 列表结构
import numpy as np
numpy_array = np.array([[1, 2, 3], [4, 5, 6]])
python_list = numpy_array.tolist()
print(python_list) # Output: [[1, 2, 3], [4, 5, 6]]
在此示例中,numpy_array 是一个具有两行和三列的二维 NumPy 数组。tolist()
方法将其转换为具有相同结构的嵌套 Python 列表。
Python 中的列表到数组转换
要将 Python 列表转换为数组,可以使用 NumPy 库提供的 array()
函数。array()
函数从给定列表的元素创建一个新的 NumPy 数组。以下是如何将列表转换为数组的示例
import numpy as np
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array) # Output: [1 2 3 4 5]
NumPy 数组是同质的,这意味着它们只能容纳相同数据类型的元素。如果列表的元素具有不同的类型,NumPy 会自动将元素提升为公共数据类型。
例如
import numpy as np
my_list = [1, 2.5, 'three', True]
my_array = np.array(my_list)
print(my_array) # Output: ['1' '2.5' 'three' 'True']
在这种情况下,列表的元素具有不同的数据类型(int、float、str 和 bool)。NumPy 将所有元素提升为公共数据类型,在这种情况下为 str。结果数组包含表示列表元素的字符串。
字符串和数组之间的转换
在处理文本数据或操作单个字符时,在字符串和Python 中的数组之间进行转换可能很有用。
Python 字符串到数组转换
要将 Python 字符串转换为单个字符的数组,可以遍历字符串并创建字符列表。这是一个示例
string = "Hello, world!"
array = [char for char in string]
print(array) # Output: ['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']
在上面的示例中,我们使用列表解析遍历字符串中的每个字符。每个字符都会添加到列表中,从而形成一个数组,其中每个元素都表示字符串中的单个字符。
如果您想将字符串拆分为单词数组而不是字符,可以使用 split()
方法。默认情况下,split()
方法根据空格字符(空格、制表符、换行符)拆分字符串。这是一个示例
string = "Hello, world! How are you?"
array = string.split()
print(array) # Output: ['Hello,', 'world!', 'How', 'are', 'you?']
在此示例中,split()
方法根据空格字符将字符串拆分为子字符串列表,从而形成一个数组,其中每个元素都表示字符串中的一个单词。
数组到字符串转换
要将数组(或列表)转换为Python 中的字符串,可以使用 join()
方法。join()
方法使用指定的定界符将可迭代对象的元素连接成一个字符串。这是一个示例
array = ['Hello', 'world', 'How', 'are', 'you?']
string = ' '.join(array)
print(string) # Output: Hello world How are you?
通过更改传递给 join()
方法的定界符,您可以修改结果字符串中元素的分隔方式。例如,使用逗号(',')作为定界符
array = ['apple', 'banana', 'orange']
string = ', '.join(array)
print(string) # Output: apple, banana, orange