Android 一直卡在 Download maven-metadata.xml

git将一个分支的提交合并到另一个分支

  返回  

Numpy基础

2021/7/21 18:08:27 浏览:

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))

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号