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

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值