欢迎访问宙启技术站
智能推送

Python中array()函数的高级用法和技巧

发布时间:2023-12-26 17:40:42

在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()函数来处理数组操作。