将 Python 列表转换为 numpy 数组

原文:https://www . geesforgeks . org/convert-python-list-to-numpy-arrays/

Python 中的列表是一种线性数据结构,可以保存不需要声明的异构元素,并且可以灵活收缩和增长。另一方面,数组是一种可以保存同构元素的数据结构,数组是使用 NumPy 库在 Python 中实现的。数组比列表需要更少的内存。

数组和列表的相似之处在于,数组和列表的元素都可以通过其索引值来识别。 在 Python 中列表可以通过使用 NumPy 库中的两种方法转换为数组:

  • 使用 numpy.array()

Python 3

# importing library
import numpy

# initializing list
lst = [1, 7, 0, 6, 2, 5, 6]

# converting list to array
arr = numpy.array(lst)

# displaying list
print ("List: ", lst)

# displaying array
print ("Array: ", arr)

输出:

List:  [1, 7, 0, 6, 2, 5, 6]
Array:  [1 7 0 6 2 5 6]
  • 使用 numpy.asarray()

Python 3

# importing library
import numpy

# initializing list
lst = [1, 7, 0, 6, 2, 5, 6]

# converting list to array
arr = numpy.asarray(lst)

# displaying list
print ("List:", lst)

# displaying array
print ("Array: ", arr)

输出:

List:  [1, 7, 0, 6, 2, 5, 6]
Array:  [1 7 0 6 2 5 6]

以上两种方法的重要区别在于 numpy.array()将复制原始对象,numpy.asarray()将镜像原始对象中的更改。即:

当使用 numpy.asarray()创建数组副本时,一个数组中所做的更改也会反映在另一个数组中,但不会显示创建数组时所依据的列表中的更改。但是,numpy.array()不会出现这种情况。

Python 3

# importing library
import numpy

# initializing list
lst = [1, 7, 0, 6, 2, 5, 6]

# converting list to array
arr = numpy.asarray(lst)

# displaying list
print ("List:", lst)

# displaying array
print ("arr: ", arr)

# made another array out of arr using asarray function
arr1 = numpy.asarray(arr)

#displaying arr1 before the changes made
print("arr1: " , arr1)

#change made in arr1
arr1[3] = 23

#displaying arr1 , arr , list after the change has been made
print("lst: " , lst)
print("arr: " , arr)
print("arr1: " , arr1)

输出:

List: [1, 7, 0, 6, 2, 5, 6]
arr:  [1 7 0 6 2 5 6]
arr1:  [1 7 0 6 2 5 6]
lst:  [1, 7, 0, 6, 2, 5, 6]
arr:  [ 1  7  0 23  2  5  6]
arr1:  [ 1  7  0 23  2  5  6]

在“arr”和“arr1”中,变化在索引 3 处可见,但在索引 1 处不可见。