NumPy库(一):数组创建、切片、索引
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库(一):数组创建、切片、索引相关推荐
- python运算学习之Numpy ------ 数组的切片索引与循环遍历、条件和布尔数组、形状变化...
数组的切片索引: 数组的切片索引和列表非常类似,下面用代码简单说明 1 a = np.random.rand(16).reshape(4, 4) 2 print("数组a:\n", ...
- 【Python】Numpy数组的切片、索引详解:取数组的特定行列
[Python]Numpy数组的切片.索引详解:取数组的特定行列 文章目录 [Python]Numpy数组的切片.索引详解:取数组的特定行列 1. 介绍 2. 切片索引 2.1 切片索引先验知识 2. ...
- 多维数组的索引与切片_「GCTT 出品」Go 系列教程——11. 数组和切片
Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获! Go 系列教程是非常棒的一套初学者教程,入门就它了. 「GCTT 出品」Go 系列教程--1. 介绍与安装 「GCTT 出品」 ...
- numpy随机生成01矩阵_Python数据分析Numpy库常用函数详解,提到循环就该想到的库...
Python进行数据分析的核心库肯定是Pandas,该库差不多可以解决结构化数据的绝大部分处理需求.在<Python数据分析常用函数及参数详解,可以留着以备不时之需 >一文中也已经对该库的 ...
- [转载] Python之NumPy基础:数组与向量化计算
参考链接: Python中的numpy.tanh 本博客为<利用Python进行数据分析>的读书笔记,请勿转载用于其他商业用途. 文章目录 1. NumPy ndarray:多维数组对象1 ...
- Python NumPy 基础:数组和向量计算
文章目录 1.1 NumPy 的ndarray:一种多维数组对象 创建ndarray ndarray数据类型 NumPy 数组的运算 基本的索引和切片 切片索引 布尔型索引 花式索引 数组转置和轴对换 ...
- Python -- Numpy库的使用
Numpy库的使用 要点:numpy是用于处理含有同种元素的多维数组运算的第三方库. 1.numpy库概述 Python标准库中提供了一个array类型,用于保存数组类型数据,然而这个类型不支 ...
- python的 numpy库学习总结和介绍(超详细)模块
目录 前言 numpy是什么? 一.创建数据容器 1.np.array(),通过传递一个列表,元祖来创建 2.np.zeros(),np.ones(),np.empty(),np.full(),传递对 ...
- Python之NumPy基础:数组与向量化计算
本博客为<利用Python进行数据分析>的读书笔记,请勿转载用于其他商业用途. 文章目录 1. NumPy ndarray:多维数组对象 1.1 生成ndarray 1.2 ndarray ...
- python中numpy.array_python中数组(numpy.array)的基本操作
本文部分内容参考Daetalus的博客. 为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简 ...
最新文章
- python用中文怎么说-如何实现python设置中文界面?
- C#关于参数为null(空值)的方法调用,重载顺序选择彻底研究
- DCMTK:在图像数据库中注册图像文件的测试程序
- 重磅开源 KSQL:用于 Apache Kafka 的流数据 SQL 引擎 2017.8.29
- 官宣!张小龙史上最长演讲 4小时3万字完整版回应微信的一切
- 20165231 2017-2018-2 《Java程序设计》第8周学习总结
- Java 内部类、局部内部类、静态内部类使用
- Single Number leetcode java
- python垃圾邮件过滤_手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤
- 打开ps显示计算机内存不足怎么办,ps内存不足怎么办【解决方法】
- 您未被授权查看该页; HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
- Linux 内核签名(签名内核模块)、linux 驱动签名
- 制作一个html网页的步骤,制作一个完整的网页的步骤
- 021—转载-各种数据类型在16位、32位和64位系统下所占字节差异简介
- 史上最强的超级爆笑锦集
- PTA-L1-079 天梯赛的善良 (20 分)(C++)
- c语言功率算电量,电功率你理解透了吗?怎么算功率因数?1度电是多少?
- js识别android ios9,JS判断客户端是IOS还是ANDROID
- vue高德地图点击放大Maker
- 电话聊天狂人 c++ stl
热门文章
- 三级数据库全真模拟试题(一)
- golang读取excel数据,写入sqlite3
- 16.windbg-.cxr、.frame、dt(查找设置设备上下文、切换局部上下文、查找结构体)
- 小米IPO背后:一碗小米粥开启的8年创业梦
- FTP Entering Extended Passive Mode
- 传感器数据处理Ⅰ------常用里程计模型
- SpringBoot整合emqtt
- 从零开始的机械臂yolov5抓取gazebo仿真(环境搭建篇下)
- 如何刷新dns缓存 刷新dns缓存命令(ipconfig /flushdns)
- Linux: rcu stall