📜  将Python列表转换为 numpy 数组

📅  最后修改于: 2022-05-13 01:55:36.992000             🧑  作者: Mango

将Python列表转换为 numpy 数组

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

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

  • 使用 numpy.array()
Python3
# 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)


Python3
# 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)


Python3
# 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]
Array:  [1 7 0 6 2 5 6]
  • 使用 numpy.asarray()

Python3

# 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() 将反映原始对象中的更改。 IE :

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

Python3

# 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 处可见,但在 1st 处不可见。