内容
1.数组基础知识
2. 索引和切片
三、数组的转置
四、数组处理数据及一般功能
5. 随机数和线性代数模块
一、Numpy数组对象
(1)NumPy中最重要的一个特点就是其N维数组对象,ndarray(array)。
(2)Numpy数组创建:NumPy 用于处理数组,我们可以使用 array() 函数创建一个 NumPy ndarray 对象。
一维数组:data1=np.array([1,5,8])
二维数组:data2=np.array([[1,4,2],[5,6,8]])
(3) zeros()函数:创建的元素值都是零
ones()函数:创建的元素值都为1
empty()函数:创建新的数组。(注:元素是随机的)
arange()函数:创建等差数组。(注:arange()函数的结果为数组,不是列表)
data=np.zeros((4,6))
data2=np.ones((2,7))
data3=np.empty((4,6))
data4=np.arange(2,5,4)
(4) ndarray对象的数据类型:
1、通过astype()方法进行转换:
data=np.array([[1,3,5],[2,3,5]])
data.dtype
float_data=data.astype(np.float64)
float_data.dtype
2、常见的Numpy数据类型:
2. 索引和切片
(1)索引:
数组索引等同于访问数组元素,可以通过引用其索引号来访问数组元素,NumPy 数组中的索引以 0 开头,这意味着第一个元素的索引为 0,第二个元素的索引为 1,以此类推。
一维数组索引
arr=np.arange(4)
arr[3]
#获取1~3的元素,但是不包括3
arr[1:3]
二维数组索引
arr2=np.array([[2,3,4],[3,4,1],[1,5,6]])
获取索引为2的元素
arr[2]
(2) 切片:
arr2=np.array([[2,3,4],[3,4,1],[1,5,6]])
一个切片:arr2[:2]
2个切片:arr2[0:2,0:2]
三、数组的转置
(1)转置:将数组中的每个元素按照一定的规则进行位置变换。
转置方法:T属性;transpose()
四、数组处理数据及一般功能
(1)将条件逻辑转为数组运算:
where()函数:三元表达式x if condition else y的矢量化版本。
arr_x = np.array([1, 7, 3])
arr_y = np.array([2, 8, 4])
arr_con = np.array([True, False, True])
result = np.where(arr_con, arr_x, arr_y)
sort():对NumPy数组中的元素进行排序
arr = np.array([[1, 2, 5],[2, 6, 2], [4, 9, 6]])
arr.sort()
all()函数:判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,反之则返回False。
arr = np.array([[1, -2, -7],[-3, 6, 2],[-4, 3, 2]])
# arr的所有元素是否都小于0
np.all(arr<0)
any()函数:判断整个数组中的元素至少有一个满足条件就返回True,反之则就返回False。
arr = np.array([[-2, -6, -7],[-3, 4, 2],[-4, 3, 7]])
# arr的所有元素是否有一个大于0
np.any(arr > 0)
unique()函数:找出数组中的唯一值,并返回排序后的结果。
arr = np.array([23, 11, 24, 23, 12, 6, 11])
np.unique(arr)
in1d()函数:判断数组中的元素是否在另一个数组中存在。
arr = np.array([12, 22, 34, 23, 12, 6, 11])
np.in1d(arr, [11, 12])
(2)通用函数: 一种针对ndarray中的数据执行元素级运算的函数,函数返回的是一个新的数组。
一元泛型函数:
二进制通用函数:
五,
(1)随机数模块:和Python的random模块相比,NumPy的random模块功能更多,它增加了一些可以高效生成多种概率分布的样本值的函数。
seed()函数:产生的随机数相同。
numpy.random.seed(seed=None)
(2) 线性代数:
dot():用于矩阵乘法。
arr_x = np.array([[1, 2, 3], [4, 5, 6]])
arr_y = np.array([[1, 2], [3, 4], [5, 6]])
# 等价于np.dot(arr_x, arr_y)
arr_x.dot(arr_y)
矩阵点积:假设A为 m*p的矩阵,B为 p*n 的矩阵,那么矩阵A与B的乘积就是一个 m*n 的矩阵C。
版权声明:本文为博主小沈不是小森原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/m0_62364412/article/details/123307333