在数据分析和科学计算中,NumPy是最常用的Python库之一,它提供了高效的数组操作和数学函数,可大大加速数据处理的速度和准确性。NumPy中的数组(ndarray)是Python中最常用的数据结构之一,但在某些情况下,我们需要将其转换为Python中的标准列表。这篇文章将详细介绍如何使用NumPy将数组转换为Python列表。
一、使用tolist()方法转换
NumPy数组可以使用tolist()方法将其转换为Python列表。
    import numpy as np
    arr = np.array([1, 2, 3, 4, 5])
    list_arr = arr.tolist()
    print(list_arr)
输出结果为:
    [1, 2, 3, 4, 5]
同样,对于多维数组,tolist()方法也可以正确地将其转换为Python列表。
    arr = np.array([[1, 2], [3, 4]])
    list_arr = arr.tolist()
    print(list_arr)
输出结果为:
    [[1, 2], [3, 4]]
二、使用nditer()方法转换
另一种将NumPy数组转换为Python列表的方法是使用nditer()方法遍历数组并将其元素添加到Python列表中。
    arr = np.array([1, 2, 3, 4, 5])
    list_arr = []
    for x in np.nditer(arr):
        list_arr.append(x)
    print(list_arr)
输出结果为:
    [1, 2, 3, 4, 5]
同样,对于多维数组,我们可以使用嵌套的for循环遍历并将其转换为Python列表。
    arr = np.array([[1, 2], [3, 4]])
    list_arr = []
    for x in np.nditer(arr):
        list_arr.append(x)
    print(list_arr)
输出结果为:
    [1, 2, 3, 4]
上述结果是将多维数组展开成一维数组后再转换为Python列表。如果我们想要保留多维数组的结构,可以稍微修改一下代码。
    arr = np.array([[1, 2], [3, 4]])
    list_arr = []
    for row in arr:
        row_list = []
        for x in row:
            row_list.append(x)
        list_arr.append(row_list)
    print(list_arr)
输出结果为:
    [[1, 2], [3, 4]]
三、使用tolist()方法和tolist()函数的比较
前面介绍了使用tolist()方法将NumPy数组转换为Python列表,但是NumPy还提供了另一种tolist()函数。那么这两种方法有什么区别呢?
将ndarray对象转换为Python列表的函数是tolist()函数,它与数组的方法tolist()不同。方法tolist()只适用于ndarray对象,而tolist()函数适用于任何可迭代对象。
看下面的代码:
    arr = np.array([1, 2, 3, 4, 5])
    tuple_arr = (1, 2, 3, 4, 5)
    list_arr_1 = arr.tolist()
    list_arr_2 = list(tuple_arr)
    print(list_arr_1)
    print(list_arr_2)
输出结果为:
    [1, 2, 3, 4, 5]
    [1, 2, 3, 4, 5]
使用tolist()函数可以将任何可迭代对象转换为Python列表。
    set_arr = {1, 2, 3, 4, 5}
    list_arr = list(set_arr)
    print(list_arr)
输出结果为:
    [1, 2, 3, 4, 5]
总之,使用NumPy将数组转换为Python列表有多种方式,可以根据实际需求选择适合的方法。方法1和方法2适用于将ndarray对象转换为Python列表,而方法3适用于将任何可迭代对象转换为Python列表。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/294038.html
 
 微信扫一扫
微信扫一扫  支付宝扫一扫
支付宝扫一扫 