Numpy基础

Numpy学习

==============

一、Numpys简介

NumPy(Numerical Python) 是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,主要用于数组计算。

二、Numpys的基本使用方法

1.numpy使用准备

首先要下载numpy:pip install numpy

之后导入numpy这个包:import numpy as np

2.numpy的对象

多维数组Ndarray对象:NumPy最重要的一个特点是其N维数组对象ndarray,它是一系列同类型数据的集合,以0下标为开始进行集合中元素的索引。

3.创建numpy的多维数组对象

np.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)

4.创建的几种方法

(1)用数组:

data=[6,7.5,8,0,1] # 创建列表

arr=np.array(data) # 转换为一维数组

data=[[1,2,3,4],[5,6,7,8]] # 创建嵌套序列

arr=np.array(data) # 转换为二维数组

由函数创建数组

利用numpy提供的函数方便的创建一些特定的数组,具体内容如下:  

函数 含义

np.zeros() 创建指定维度全0多维数组。

np.ones() 创建指定维度全1多维数组。

np.eye() 创建指定维度的单位矩阵。

np.arange() 创建指定数量的顺序数组(默认0开始)。

linspace() 创建指定范围的一维数组,并分成若干等份。

reshape() 更改数组的维度

三、Numpy的运算

1:基本运算

标量表示实数。数组和标量的运算,表示标量和数组的每一个元素进行运算。例如实数加上一个数组,表示实数和数组里面的每一个元素相加。

2:广播扩散

不同维度的数组进行运算时,数组具有广播特性,即自动将维度进行扩展。例如一个33的二维数组和一个13的一维数组进行加法或者减法,13的一维数组会进行广播,将维度扩展为33,例如:

a = np.array([[1,2,3],

          [1,2,3],  

          [1,2,3]])  

b = np.array([1,2,3])

c = a + b 或者 c = a – b

四、Numpy的索引

1.布尔索引

arr=np.array([[1,2,3],[4,5,6],[7,8,9]])

输出arr<5

输出结果为:

[[ True True True]

[ True False False]

[False False False]]

如果令arr[arr<5]=0

输出arr

输出结果为:

[[0 0 0]

[0 5 6]

[7 8 9]]

2.三元运算符

三元运算符np.where(表达式,数1,数2),当表达式为真,结果为数1,否则结果为数2。

例如np.where(arr<5,0,10)

输出结果为:

[[ 0 0 0]

[ 0 10 10]

[10 10 10]]

五、数学方法

1.均值mean

np.mean表示求数组的平均值。例如:

arr=np.array([[1,2,3],

          [4,5,6],  

          [7,8,9]])    

np.mean(arr); #统计二维数组所有元素的均值。

输出:5

np.mean(arr,axis=0) #统计每列的均值,返回列表 。

输出:array([4., 5., 6.])

np.mean(arr,axis=1) #统计每行的均值,返回列表。

输出:array([2., 5., 8.])

2.sum方法

np.sum表示计算数组元素的和。例如:

c = np.array([[0, 2, 1],

          [3, 5, 6],   

          [0, 1, 1]])  

np.sum© #统计二维数组所有元素的和。

输出:19

np.sum(c,axis=0) #统计每列的和,返回列表。

输出:array([3, 8, 8])

np.sum(c,axis=1) #统计每行的和,返回列表。

输出:array([ 3, 14, 2])

4.2.4 最小值与最大值

np.min和np.max表示数组元素的最小值和最大值。例如:  

a = np.array([[1,5,3],

            [4,2,6]])    

np.min(a) #无参,所有中的最小值

输出:1

np.min(a,axis=0) #axis=0,每列的最小值

输出:array([1, 2, 3])

np.min(a,axis=1) #axis=1,每行的最小值

输出:array([1, 2])

3.排序(sort)

np.sort表示对数组元素进行排序。例如:  

arr = np.array([[1,5,6],

            [4,2,3],  

            [7,8,9]])     

np.sort(arr, axis=0) #二维数组按列排序;

输出:array([[1, 2, 3],

         [4, 5, 6],  

         [7, 8, 9]])  

np.sort(arr, axis=1) #二维数组按行排序;

输出:array([[1, 5, 6],

         [2, 3, 4],  

         [7, 8, 9]])  

4.唯一化(unique)

NumPy提供了一些针对一维ndarray的基本集合运算。最常见的可能要数np.unique了,它用于找出数组中的唯一值,并返回已排好序的结果。

names=np.array([3,3,3,2,2,1,1,4,4])

np.unique(names) #找出names数组中的唯一值并返回已排序的结果

输出:array([1, 2, 3, 4])

5.数组拼接

数组拼接包括np.vstack()和np.hstack(),其中vstack表示竖拼接,hstack表示行拼接。

a=np.array([[1,2,3],

        [4,5,6]]) 

b=np.array([[7,8,9],

        [10,11,12]]) 

np.vstack((a,b))

输出结果为:

array([[ 1, 2, 3],

   [ 4,  5,  6],

   [ 7,  8,  9],

   [10, 11, 12]])

np.hstack((a,b))

输出结果为:

array([[ 1, 2, 3, 7, 8, 9],

   [ 4,  5,  6, 10, 11, 12]])

6.生成随机数

生成随机数(uniform)

rand(d0,d1,…,dn) 根据d0-dn创建随机数数组,浮点数,[0,1),均匀分布 np.random.rand(3,4)

randn(d0,d1,…,dn) 根据d0-dn创建随机数数组,标准正态分布 np.random.randn(3,4)

randint(low,high,shape) 根据shape创建随机整数或整数数组,范围是[low, high) np.random.randint(100,200,

(3,4))

uniform(low,high,size) 产生具有均匀分布的数组,low起始值,high结束值,size形状 np.random.uniform(0,10,(3,4))

normal(loc,scale,size) 产生具有正态分布的数组,loc均值,scale标准差,size形状 np.random.normal(10,5,(3,4))

poisson(lam,size) 产生具有泊松分布的数组,lam随机事件发生率,size形状 np.random.poisson(3,(3,4))
hart.js/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值