热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jupyter入门之numpy基础语法

jupyter入门安装https:mirrors.tuna.tsinghua.edu.cnanacondaarchive‘>jupyter下载地址下载安装成功之

jupyter入门

安装

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/‘>jupyter下载地址

下载安装成功之后打开

jupyter使用

点击base(root)后的小三角(open with Jupiter notebook)

默认打开8888端口

cell
每一个cell都可以放一段独立的代码, 独立运行
ctrl+enter

切换cell的编辑格式 在cell的选中状态下使用y/m
y:code格式
markdown模式

删除cell
x 删除选中cell
dd 删除选中cell

shift+tab查看api

tab自动补全

新建文件

numpy语法

import numpy as np
# 查看版本
np.__version__
# '1.14.3'

1. np.array

a1 = np.array([1,2,3,4,5])
>>> array([1,2,3,4,5])
a2 = np.array([1.0,2,3,4,5])
>>> array([1.,2.,3.,4.,5.])

2. 使用np的routines函数创建数组

  • np.ones(shape,)
n1 = np.ones(shape=5)
>>> array([1., 1., 1., 1., 1.])
n2 = np.ones(shape=(3,3))
>>> array([[1., 1., 1.],
           [1., 1., 1.],
           [1., 1., 1.]])
n3 = np.ones(shape=(3,3,2))
>>> array([[[1., 1.],
            [1., 1.],
            [1., 1.]],

           [[1., 1.],
            [1., 1.],
            [1., 1.]],

           [[1., 1.],
            [1., 1.],
            [1., 1.]]])
  • np.zeros
# 5行3列以0填充
n4 = np.zeros(shape=(5,3))
  • np.full
# 3行2列以6填充
n5 = np.full(shape=(3,2),fill_value=6)
  • np.eye
# 5行5列单位矩阵
np.eye(N=5)
  • np.linspace
# 0到10分为10等份 末尾不计
np.linspace(0,10,10,endpoint=False)
>>> array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
  • n.arange
# start,stop,step
np.arange(0,10,1)
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

3 正态分布

# 标准正太分布 方差为1,期望为0
np.random.randn(3,2)
# 普通正太分布 指定方差和期望值
np.random.normal(loc=1.75,scale=0.3,size=10)

ndarray属性

4个必记参数:

ndim:维度

shape:形状(各维度的长度)

size:总长度

dtype:元素类型

# 0-100随机 5行4列
n = np.random.randint(0,100,size=(5,4))

n.ndim
>>> 2
n.shape
>>> (5,4)
n.size
>>> 20
n.dtype
>>> dtype=('int32')

ndarray基本操作

1. 索引

n1[0]
# numpy特有 方便取值
n1[0,0]

2. 切片

# start:stop:step
n1[0:3]
# 取反
n1[::-1]
# 索引2,3行,之后取索引2,3列
n2[2:4,2:4]
# 索引0,1列
n2[:,:2]
# 主要看第几维在变
n3[:,:,:2]

3. 变形

# 变为1维数组
n2.reshape(36)
n2.reshape(36,)
# 1行36列
n2.reshape(1,36)
# 36行1列
n2.reshape(36,1)

4. 级联

  1. np.concatenate() 级联需要注意的点:
  2. 级联的参数是列表:一定要加中括号或小括号
  3. 维度必须相同
  4. 形状相符
  5. 【重点】级联的方向默认是shape这个tuple的第一个值所代表的维度方向
  6. 可通过axis参数改变级联的方向
np.concatenate((n1,n2),axis=1)

h:horizontal 横向
v:vertical 纵向

np.hstack与np.vstack
水平级联与垂直级联,处理自己,进行维度的变更

5.切分

与级联类似,三个函数完成切分工作:

  • np.split
  • np.vsplit
  • np.hsplit
# 1.如果indices_or_sections设置为整数,必须保证在切割的维度上是可以被这个整数整除的
# 2.如果是1-D array,[m,n] 意味着按照如下方式切割 [0:m] [m:n] [n:]
result = np.split(n,indices_or_sectiOns=3,axis=1)

6.副本

# 浅拷贝 不会修改n1的值
cn = n1.copy()

ndarray聚合操作

求和 np.sum

标准差 np.std()

np.nan

最大最小值 np.max/np.min

其他运算

Function Name    NaN-safe Version    Description
np.sum    np.nansum    Compute sum of elements
np.prod    np.nanprod    Compute product of elements
np.mean    np.nanmean    Compute mean of elements
np.std    np.nanstd    Compute standard deviation
np.var    np.nanvar    Compute variance
np.min    np.nanmin    Find minimum value
np.max    np.nanmax    Find maximum value
np.argmin    np.nanargmin    Find index of minimum value
np.argmax    np.nanargmax    Find index of maximum value
np.median    np.nanmedian    Compute median of elements
np.percentile    np.nanpercentile    Compute rank-based statistics of elements
np.any    N/A    Evaluate whether any elements are true
np.all    N/A    Evaluate whether all elements are true
np.power 幂运算

ndarray的矩阵操作

1. 加减乘除

2. 矩阵积np.dot()

n3 = np.array([[1,2],[3,4]])
np.dot(n3,n3)
>>> array([[ 7, 10],
        [15, 22]])

3. 广播机制(重点)

【重要】ndarray广播机制的两条规则

  • 规则一:为缺失的维度补1
  • 规则二:假定缺失元素用已有值填充
# 计算一个数组中每个元素与平均值的差
n1 = np.random.randint(0,100,size=10)
n1-n1.mean()
# axis=1求每一行的平均值
n2.mean(axis=1).reshape((-1,1))
# 求每一行的每一个元素与该行的平均值的差
n2 - n2.mean(axis=1).reshape((-1,1))

1. 快速排序

np.sort()与ndarray.sort()都可以,但有区别:

  • np.sort()不改变输入
  • ndarray.sort()本地处理,不占用空间,但改变输入

2. 部分排序

np.partition(a,k)

有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。

  • 当k为正时,我们想要得到最小的k个数
  • 当k为负时,我们想要得到最大的k个数

推荐阅读
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 抽空写了一个ICON图标的转换程序
    抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
author-avatar
宁波南诚装饰_886
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有