python array函数用法
Python中的数组(array)是一种用于存储和操作相同类型数据的集合,在Python中,我们可以使用NumPy库来创建和操作数组,NumPy是Python的一个强大的科学计算库,它提供了许多高级的数值编程工具,如:矩阵运算、线性代数、傅里叶变换等,本文将详细介绍如何使用Python的NumPy库来创建和操作数组。
(图片来源网络,侵删)
安装NumPy库
在使用NumPy库之前,我们需要先安装它,可以使用以下命令来安装NumPy库:
pip install numpy
创建数组
在NumPy中,我们可以使用numpy.array()
函数来创建数组,以下是一些创建数组的示例:
1、创建一个一维数组:
import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) print(arr1)
输出结果:
[1 2 3 4 5]
2、创建一个二维数组:
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(arr2)
输出结果:
[[1 2 3] [4 5 6] [7 8 9]]
3、创建一个多维数组:
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr3)
输出结果:
[[[1 2] [3 4]] [[5 6] [7 8]]]
访问数组元素
我们可以使用索引来访问数组中的元素,以下是一些访问数组元素的示例:
arr = np.array([1, 2, 3, 4, 5]) print(arr[0]) # 访问第一个元素,输出结果为1 print(arr[1]) # 访问最后一个元素,输出结果为5 print(arr[1:3]) # 访问第二个和第三个元素,输出结果为[2, 3]
修改数组元素
我们可以使用索引来修改数组中的元素,以下是一些修改数组元素的示例:
arr = np.array([1, 2, 3, 4, 5]) arr[0] = 10 # 将第一个元素修改为10,输出结果为[10, 2, 3, 4, 5] arr[1] = 20 # 将最后一个元素修改为20,输出结果为[10, 2, 3, 4, 20] arr[1:3] = [2, 2] # 将第二个和第三个元素修改为2,输出结果为[10, 2, 2, 4, 20]
数组切片和拼接
我们可以使用切片来获取数组的一部分,也可以使用拼接来连接多个数组,以下是一些数组切片和拼接的示例:
arr = np.array([1, 2, 3, 4, 5]) print(arr[:2]) # 获取前两个元素,输出结果为[1, 2] print(arr[2:]) # 获取从第三个元素开始的所有元素,输出结果为[3, 4, 5] print(arr[:1]) # 获取除最后一个元素外的所有元素,输出结果为[1, 2, 3, 4] print(arr[::2]) # 获取所有偶数位置的元素,输出结果为[1, 3, 5] print(np.concatenate((arr, arr))) # 将两个数组拼接在一起,输出结果为[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
数组形状和维度
我们可以使用shape
属性来获取数组的形状,使用ndim
属性来获取数组的维度,以下是一些获取数组形状和维度的示例:
arr = np.array([[1, 2], [3, 4]]) print(arr.shape) # 获取数组的形状,输出结果为(2, 2),表示这是一个2行2列的二维数组 print(arr.ndim) # 获取数组的维度,输出结果为2,表示这是一个二维数组
数组排序和查找
我们可以使用sort()
函数来对数组进行排序,使用argmax()
和argmin()
函数来查找数组中的最大值和最小值的位置,以下是一些排序和查找的示例:
arr = np.array([3, 1, 4, 1, 5, 9]) arr.sort() # 对数组进行排序,输出结果为[1, 1, 3, 4, 5, 9] print(np.argmax(arr)) # 查找数组中的最大值的位置,输出结果为4,表示最大值为9的位置在第5个(索引从0开始) print(np.argmin(arr)) # 查找数组中的最小值的位置,输出结果为0,表示最小值为1的位置在第1个(索引从0开始)
数组运算和广播机制
我们可以使用NumPy库提供的数学函数来进行数组运算,NumPy还支持广播机制,允许在不同形状的数组之间进行运算,以下是一些数组运算和广播的示例:
import numpy as np from numpy import sin, cos, pi from numpy.random import random_sample as sample_random_numbers_in_range_of_zero_to_one_and_reshape_it_to_a_two_dimensional_array_of_size_five_by_three_with_each_element_being_an_integer_between_zero_and_ninety_nine_and_multiply_it_by_two_and_add_one_forty_nine_point_five_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one_eighteen_two_fourteen_one