科学计算库NumPy

内容

1.数组基础知识

2. 索引和切片

三、数组的转置

四、数组处理数据及一般功能

5. 随机数和线性代数模块

一、Numpy数组对象

(1)NumPy中最重要的一个特点就是其N维数组对象,ndarray(array)。

科学计算库NumPy

(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数据类型:

科学计算库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)

科学计算库NumPy

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中的数据执行元素级运算的函数,函数返回的是一个新的数组。

一元泛型函数:

科学计算库NumPy

二进制通用函数:

科学计算库NumPy

五,

(1)随机数模块:和Python的random模块相比,NumPy的random模块功能更多,它增加了一些可以高效生成多种概率分布的样本值的函数。

科学计算库NumPy

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。

科学计算库NumPy

科学计算库NumPy

版权声明:本文为博主小沈不是小森原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_62364412/article/details/123307333

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月7日 下午2:57
下一篇 2022年3月7日

相关推荐