栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

科学计算库NumPy

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

科学计算库NumPy

目录

一、数组的基本知识

二、索引与切片

三、数组的转置

四、数组处理数据与通用函数

五、随机数和线性代数模块


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


二、索引与切片

(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。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753658.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号