Python中array()函数的高级用法和技巧
在Python中,array() 是一个函数,它的定义如下:
array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
它的作用是将一个Python对象转换为一个数组。array()函数有许多高级用法和技巧,下面将详细介绍。
1. 数组类型的指定
array()函数的第二个参数dtype用于指定数组的数据类型。默认情况下,它会根据输入参数的类型自动推断出数组的数据类型。如果需要明确指定数组的数据类型,可以使用dtype参数。
import numpy as np x = [1, 2, 3, 4, 5] arr = np.array(x, dtype=float) print(arr)
输出:
[1. 2. 3. 4. 5.]
2. 复制数组
array()函数的第三个参数copy用于指定是否复制输入对象。默认情况下,输入对象会被复制到新的数组中。如果不想进行复制,可以将copy参数设置为False。
import numpy as np x = [1, 2, 3, 4, 5] arr1 = np.array(x) arr2 = np.array(x, copy=False) print(arr1) print(arr2) x[0] = 10 print(arr1) print(arr2)
输出:
[1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5] [10 2 3 4 5]
可以看到,当输入对象发生变化时,设置copy参数为False的数组也会跟着变化。
3. 数组内存顺序
array()函数的第四个参数order用于指定数组的内存顺序。默认情况下,数组是以行优先的方式存储在内存中的(即C顺序)。
import numpy as np x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] arr1 = np.array(x) arr2 = np.array(x, order='F') print(arr1) print(arr2)
输出:
[[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6] [7 8 9]]
可以看到,两个数组的元素是相同的。但是,arr1是以行优先的方式存储在内存中的(C顺序),而arr2是以列优先的方式存储在内存中的(Fortran顺序)。
4. 多维数组
array()函数也可以用来创建多维数组。
import numpy as np x = [[1, 2], [3, 4]] arr = np.array(x) print(arr) print(type(arr))
输出:
[[1 2] [3 4]] <class 'numpy.ndarray'>
可以看到,arr是一个二维数组,并且它的类型是ndarray(NumPy数组)。
5. 数组维数的指定
array()函数的第五个参数ndmin用于指定数组的最小维数。默认情况下,数组的维数是根据输入参数的维度自动推断出来的。
import numpy as np x = [1, 2, 3, 4, 5] arr1 = np.array(x) arr2 = np.array(x, ndmin=2) print(arr1) print(arr1.shape) print(arr2) print(arr2.shape)
输出:
[1 2 3 4 5] (5,) [[1 2 3 4 5]] (1, 5)
可以看到,arr1是一个一维数组,而arr2是一个二维数组。
综上所述,array()函数在Python中具有许多高级用法和技巧,可以根据需要指定数组类型、复制数组、指定数组内存顺序、创建多维数组以及指定数组维数。这些用法和技巧可以帮助我们更好地利用array()函数来处理数组操作。
