将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 处不可见。