NumPy

  • numpy介绍
  • 从数值范围创建元组
    • arange()
    • linspace()
    • logspace()
    • numpy.asarray()
    • numpy.empty()
    • 0矩阵和全1矩阵
    • 单位对角阵
    • numpy.diag()
  • 数组切片与索引
    • 行或列索引切片
    • 高级索引
    • 布尔索引(筛选)
    • 传入索引筛选数组

numpy介绍

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

从数值范围创建元组

arange()

numpy.arange(start,stop,step,dtype)

start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型
实例:

// An highlighted block
import numpy as np
x=np.arange(10,20,2,dtype=complex)
print(x)
#输出结果    [10.+0.j 12.+0.j 14.+0.j 16.+0.j 18.+0.j]

linspace()

numpy.linspace函数用于创建一个一维数组,数组是一个等差数列构成的

np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)

start序列的起始值
stop序列的终止值,
如果endpoint为true,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为true时,数列中包含stop值,反之不包含,默认是True。
retstep如果为True时,生成的数组中会显示间距,反之不显示。
dtypendarray的数据类型

// 实例
import numpy as np
a=np.linspace(1,10,10,retstep=True)
print(a)
#输出结果   (array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.]), 1.0)

logspace()

numpy.logspace函数用于创建一个等比数列

np.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)

start序列的起始值为:base * * startstop
序列的终止值为:base**stop。如果endpoint为true,该值包含于数列中
base对数log的底数。

// 实例
import numpy as np
a=np.logspace(0,9,10,base=2)
print(a)
#输出结果  [  1.   2.   4.   8.  16.  32.  64. 128. 256. 512.]

numpy.asarray()

从已有数组创建新的数组或者矩阵

numpy.asarray(a,dtype=None,order=None)

a任意形式的输入参数,可以是,列表,列表的元组,元组,元组的元组,元组的列表
多维数组dtype数据类型,可选
order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序

#将嵌套列表转换为矩阵(二维ndarray)
import numpy as np
x=[(1,2,3),(4,5)]
a=np.asarray(x)
print(a)
print(a.shape)
print(a[0])
'''
输出结果
[(1, 2, 3) (4, 5)]
(2,)
(1, 2, 3)
'''

numpy.empty()

numpy.empty方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组

numpy.empty(shape,dtype=float,order='C')

shape数组形状(维度)
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

import numpy as np
x=np.empty([3,2],dtype=int)
print(x)
'''
输出
[[-1092971664 -2008948015][  489906992         462][  489906992         462]]
'''
数组元素为随机值,因为它们未初始化

0矩阵和全1矩阵

函数 介绍
numpy.zeros(shape,dtype=float,order=‘C’) 创建全0数组
numpy.ones(shape,dtype=None,order=‘C’) 创建全1数组

单位对角阵

numpy.eye()方法创建单位矩阵创建指定对角元为1,其他元素为0的二维数组即单位矩阵
下面展示一些 内联代码片

numpy.ones(N,M=None,k=0,dtype=float,order='C')

N数组形状
M可选,默认矩阵为方阵
参数k指定元素为1的对角线,k=0表示主对角,k为正表示上三角的第k条对角,k为负表示下三角的第|k|条对角

import numpy as np
A=np.eye(4)
print(A)
B=np.eye (4,k =1)#上三角的第一条对角线全为1,其他元素为0
print(B)
'''
输出
[[1. 0. 0. 0.][0. 1. 0. 0.][0. 0. 1. 0.][0. 0. 0. 1.]]
[[0. 1. 0. 0.][0. 0. 1. 0.][0. 0. 0. 1.][0. 0. 0. 0.]]'''

numpy.diag()

创建对角矩阵或取矩阵对角元素

下面展示一些 内联代码片

numpy.diag(v,k=0)

v列表、元组或矩阵
k指定对角线位置。

import numpy as np
A=np.diag([1,2,3])#创建三角矩阵
print(A)
a=np.diag(A)#取对角元素
print(a)
b=np.diag([[1,2,3],[4,5,6],[7,8,9]])#取对角元素
print(b)
'''
输出
[[1 0 0][0 2 0][0 0 3]]
[1 2 3]
[1 5 9]
'''

数组切片与索引

ndarray对象的内容可以通过索引或切片来访问和修改,与Python中list的切片操作一样。ndarray数组可以基于0-n的下标进行索引,切片对象可以通过内置的slice函数,并设置start,stop及step参数进行,从原数组中切割出一个新数组

行或列索引切片


[行索引的开始:行索引的结束,列索引的开始:列索引的结束]

高级索引

实例:获取二维数组中(0,0),(1,1)和(2,0)位置处的元素

// 获取二维数组中(0,0),(1,1)和(2,0)位置处的元素
import numpy as np
A=np.array([[1,2],[3,4],[5,6]])
y=A[[0,1,2],[0,1,0]]
print(y)
'''
结果
[1 4 5]
'''

布尔索引(筛选)

实例:获取大于5的元素

//实例:获取大于5的元素
import numpy as np
x=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print('我们的数组是:',x)
print('\n')
print('大于5的元素是:')
print(x[x>5])
'''
输出
我们的数组是: [[ 0  1  2][ 3  4  5][ 6  7  8][ 9 10 11]]大于5的元素是:
[ 6  7  8  9 10 11]
'''

传入索引筛选数组

// An highlighted block
import numpy as np
x = np.arange(32).reshape((8, 4))
print(x)
print(x[[4, 2, 1, 7]])
'''
输出
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11][12 13 14 15][16 17 18 19][20 21 22 23][24 25 26 27][28 29 30 31]]
[[16 17 18 19][ 8  9 10 11][ 4  5  6  7][28 29 30 31]]
'''

NumPy库(一):数组创建、切片、索引相关推荐

  1. python运算学习之Numpy ------ 数组的切片索引与循环遍历、条件和布尔数组、形状变化...

    数组的切片索引: 数组的切片索引和列表非常类似,下面用代码简单说明 1 a = np.random.rand(16).reshape(4, 4) 2 print("数组a:\n", ...

  2. 【Python】Numpy数组的切片、索引详解:取数组的特定行列

    [Python]Numpy数组的切片.索引详解:取数组的特定行列 文章目录 [Python]Numpy数组的切片.索引详解:取数组的特定行列 1. 介绍 2. 切片索引 2.1 切片索引先验知识 2. ...

  3. 多维数组的索引与切片_「GCTT 出品」Go 系列教程——11. 数组和切片

    Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获! Go 系列教程是非常棒的一套初学者教程,入门就它了. 「GCTT 出品」Go 系列教程--1. 介绍与安装 「GCTT 出品」 ...

  4. numpy随机生成01矩阵_Python数据分析Numpy库常用函数详解,提到循环就该想到的库...

    Python进行数据分析的核心库肯定是Pandas,该库差不多可以解决结构化数据的绝大部分处理需求.在<Python数据分析常用函数及参数详解,可以留着以备不时之需 >一文中也已经对该库的 ...

  5. [转载] Python之NumPy基础:数组与向量化计算

    参考链接: Python中的numpy.tanh 本博客为<利用Python进行数据分析>的读书笔记,请勿转载用于其他商业用途. 文章目录 1. NumPy ndarray:多维数组对象1 ...

  6. Python NumPy 基础:数组和向量计算

    文章目录 1.1 NumPy 的ndarray:一种多维数组对象 创建ndarray ndarray数据类型 NumPy 数组的运算 基本的索引和切片 切片索引 布尔型索引 花式索引 数组转置和轴对换 ...

  7. Python -- Numpy库的使用

    Numpy库的使用   要点:numpy是用于处理含有同种元素的多维数组运算的第三方库. 1.numpy库概述   Python标准库中提供了一个array类型,用于保存数组类型数据,然而这个类型不支 ...

  8. python的 numpy库学习总结和介绍(超详细)模块

    目录 前言 numpy是什么? 一.创建数据容器 1.np.array(),通过传递一个列表,元祖来创建 2.np.zeros(),np.ones(),np.empty(),np.full(),传递对 ...

  9. Python之NumPy基础:数组与向量化计算

    本博客为<利用Python进行数据分析>的读书笔记,请勿转载用于其他商业用途. 文章目录 1. NumPy ndarray:多维数组对象 1.1 生成ndarray 1.2 ndarray ...

  10. python中numpy.array_python中数组(numpy.array)的基本操作

    本文部分内容参考Daetalus的博客. 为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简 ...

最新文章

  1. python用中文怎么说-如何实现python设置中文界面?
  2. C#关于参数为null(空值)的方法调用,重载顺序选择彻底研究
  3. DCMTK:在图像数据库中注册图像文件的测试程序
  4. 重磅开源 KSQL:用于 Apache Kafka 的流数据 SQL 引擎 2017.8.29
  5. 官宣!张小龙史上最长演讲 4小时3万字完整版回应微信的一切
  6. 20165231 2017-2018-2 《Java程序设计》第8周学习总结
  7. Java 内部类、局部内部类、静态内部类使用
  8. Single Number leetcode java
  9. python垃圾邮件过滤_手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤
  10. 打开ps显示计算机内存不足怎么办,ps内存不足怎么办【解决方法】
  11. 您未被授权查看该页; HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
  12. Linux 内核签名(签名内核模块)、linux 驱动签名
  13. 制作一个html网页的步骤,制作一个完整的网页的步骤
  14. 021—转载-各种数据类型在16位、32位和64位系统下所占字节差异简介
  15. 史上最强的超级爆笑锦集
  16. PTA-L1-079 天梯赛的善良 (20 分)(C++)
  17. c语言功率算电量,电功率你理解透了吗?怎么算功率因数?1度电是多少?
  18. js识别android ios9,JS判断客户端是IOS还是ANDROID
  19. vue高德地图点击放大Maker
  20. 电话聊天狂人  c++ stl

热门文章

  1. 三级数据库全真模拟试题(一)
  2. golang读取excel数据,写入sqlite3
  3. 16.windbg-.cxr、.frame、dt(查找设置设备上下文、切换局部上下文、查找结构体)
  4. 小米IPO背后:一碗小米粥开启的8年创业梦
  5. FTP Entering Extended Passive Mode
  6. 传感器数据处理Ⅰ------常用里程计模型
  7. SpringBoot整合emqtt
  8. 从零开始的机械臂yolov5抓取gazebo仿真(环境搭建篇下)
  9. 如何刷新dns缓存 刷新dns缓存命令(ipconfig /flushdns)
  10. Linux: rcu stall