优草派 > 问答 > Python

python中numpy数组与list如何相互转换?

作者:nakazawa     

Python中的NumPy库提供了一种强大的数据结构——数组。与Python原生的列表(list)不同,NumPy数组是可变序列的同构数据容器,它可以包含同一种数据类型的元素,并且支持高效的向量化计算。在实际应用中,我们经常需要将NumPy数组与Python列表相互转换,以便进行数据处理、可视化、机器学习等工作。本文将从多个方面介绍NumPy数组与Python列表的相互转换方法。1. 将列表转换为数组

在NumPy中,我们可以通过array()函数将Python列表转换为NumPy数组。下面是一个简单的例子:

```python

import numpy as np

a = [1, 2, 3, 4, 5]

b = np.array(a)

print(b)

```

输出结果为:

```

[1 2 3 4 5]

```

我们可以看到,将列表a转换为NumPy数组b后,输出结果为一维数组。如果列表中包含多个子列表,那么转换后的数组就是多维数组。例如:

```python

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b = np.array(a)

print(b)

```

输出结果为:

```

[[1 2 3]

[4 5 6]

[7 8 9]]

```

此时,转换后的数组b是一个3行3列的二维数组。

2. 将数组转换为列表

要将NumPy数组转换为Python列表,我们可以使用tolist()函数。下面是一个简单的示例:

```python

import numpy as np

a = np.array([1, 2, 3, 4, 5])

b = a.tolist()

print(b)

```

输出结果为:

```

[1, 2, 3, 4, 5]

```

我们可以看到,将数组a转换为Python列表b后,输出结果为一维列表。如果数组是多维的,那么转换后的列表也是多维的。例如:

```python

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

b = a.tolist()

print(b)

```

输出结果为:

```

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

```

此时,转换后的列表b是一个3行3列的二维列表。

3. 数组与列表的元素类型转换

在Python中,列表可以包含不同类型的元素,而NumPy数组则要求所有元素的类型相同。因此,在将列表转换为数组或将数组转换为列表时,需要考虑元素类型的转换问题。下面是一个示例:

```python

import numpy as np

a = [1, 2, 3, 4, 5]

b = np.array(a, dtype=float)

print(b)

c = np.array([1, 2, 3, 4, 5], dtype=str)

d = c.tolist()

print(d)

```

输出结果为:

```

[1. 2. 3. 4. 5.]

['1', '2', '3', '4', '5']

```

我们可以看到,在将列表a转换为数组b时,我们指定了元素类型为浮点型。转换后的数组b中的元素类型为float64。在将数组c转换为列表d时,我们指定了元素类型为字符串型。转换后的列表d中的元素类型为str。

4. 数组与列表的形状转换

在NumPy中,我们可以使用reshape()函数改变数组的形状。例如,将一个一维数组转换为二维数组:

```python

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

b = a.reshape(2, 3)

print(b)

```

输出结果为:

```

[[1 2 3]

[4 5 6]]

```

我们可以看到,将一维数组a转换为二维数组b后,输出结果为2行3列的矩阵。如果我们要将一个二维数组转换为一维数组,可以使用flatten()函数。例如:

```python

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

b = a.flatten()

print(b)

```

输出结果为:

```

[1 2 3 4 5 6 7 8 9]

```

我们可以看到,将二维数组a转换为一维数组b后,输出结果为一维数组。

5. 总结

本文介绍了NumPy数组与Python列表相互转换的方法。我们可以通过array()函数将列表转换为数组,通过tolist()函数将数组转换为列表。在转换过程中,需要考虑元素类型的转换问题。另外,我们还介绍了如何改变数组的形状,包括将一维数组转换为多维数组和将多维数组转换为一维数组。

5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
相关问题
sql判断字段是否存在
python键值对
for循环可以遍历字典吗
怎么使用vscode
查看更多

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024