Numpy最重要的一个特点就是其N维数组对象,即ndarray,该对象是一种快速而灵活的大数据集容器,实际开发中,我们可以利用这种数组对整块数据执行一些数学运算。

有关ndarray,我们就从最简单的一维数组操作以及其构造开始说起:

import numpy as np

if __name__ == '__main__':
print()
#输出一个字典对象i+rand
print({i :np.random.rand() for i in range()})
#输出字典对象i+list(rand)
print({i: np.random.rand() for i in range()}) #在变量前面加一个?问号,可以将有关该对象的一些通用信息显示出来
a=[] for i in range():
#这里b就是一个有3个随机小数的数组
b = np.random.rand()
print(b.shape)
print(b)
a.append(b)
print(a) #从管道中输出a
# print(a.pop(0))
# print(a)
#通过array这个方法将a数组转成nparray
c=np.array(a)
print("c============",c) #这里随机获取一个二维数组
d=np.empty((,))
print(d) #np的基本索引和切片
#先生成一个从0到10的一维数组[0 1 2 3 4 5 6 7 8 9]
arr=np.arange() #针对这个np我们可以简单切片,比如我要获取5,6,7可以通过这个方法:arr[开始的index,结束的index],这里的index从0开始,
#左包含右不包含
arr1=arr[:]
print(arr1) #对一个切片进行赋值时,该值会传播整个选取:比如arr[5:8]=12的输出值就是[ 0 1 2 3 4 12 12 12 8 9]
arr[:]=12
print(arr) #如果操作需要,我们可以针对切片中再一次进行切片赋值
arr_slice=arr[:] #[4,12,12,12]
print(arr_slice[]) #4
print(arr_slice[]) # 12
arr_slice[:]=89
print(arr_slice) #[89 89 12 12]
print(arr) #[ 0 1 2 3 89 89 12 12 8 9]
#如果你想要得到的是ndarray切片的一份副本而不是视图,就需要进行复制操作,比如
arrCopy=arr.copy()
print(arrCopy)

当然,针对多元的数据更加需要多元的数组,比如二维数组,这里针对二维数组切片和索引进行简单的讲解:

#如果是多维数组,比如一个二维数组,我们操作可以如下,先生成一个2维数组:[[0 1 2][3 4 5][6 7 8]]
x=[]
for i in range(): x1=np.arange(*i,*i+)
x.append(x1) arr2d=np.array(x)
print(arr2d) #我们可以看看这个二维数组如何切片,有关切片索引
print(arr2d[]) # [3 4 5]
# 二维数组切片索引和一维稍微不同,以下两个两两等价
print(arr2d[:]) # [[0 1 2][3 4 5]]
print(arr2d[:]) # [[0 1 2][3 4 5]]
print(arr2d[][]) # 6
print(arr2d[,:]) #[6]
print(arr2d[,:]) #[6 7]
#更多维数组操作也类似上面一样,举一反三

更多维度的数组操作也类似上面,我们可以举一反三,除了这一部分之外,还有布尔索引和花式索引

花式索引:花式索引是一个numpy术语,它指利用整数数组进行索引,例如,我们使用一个8*4的数组

#有关花式索引
#花式索引是一个numpy术语,它指利用整数数组进行索引,例如,我们使用一个8*4的数组
# arr=np.empty((8,4))
arr=np.arange().reshape((,))
print(arr) #以特定顺序选取子集,这里选取的就是第5,4,1,7行的子数组
print(arr[[,,,]]) #如果我们使用负数索引,则选取的从末尾开始-1为最后一行,-2为倒数第二行
print(arr[[-,-]]) #这里输出的分别是arr第5行的第一个数,第4行的第2个数,第1行的第3个数和第7行的第4个数组成的数组
print(arr[[,,,],[,,,]]) #这里输出分别为arr第5,4,1,7行的第1,2,3个数组成的数组
#[[16 17 18] [12 13 14] [ 0 1 2] [24 25 26]]
print(arr[[,,,]][:,[,,]])

python基础---有关nparray----切片和索引(一)的更多相关文章

  1. python 基础之列表切片内置方法

    列表操作 c=['cx','zrd','ajt','dne'] #定义一个列表,有4个元素 #增删改查 print(c[3]) #从0计数 测试 D:\python\python.exe D:/unt ...

  2. python基础练习 dict切片

    利用切片操作,实现一个trim()函数,去除字符串首尾的空格 def trim(s): if s[:1] != ' ' and s[-1:] != ' ': return s elif s[:1] = ...

  3. Python基础(slice切片)

    l = ['傻狗1','傻狗2','傻狗3','傻狗4','傻狗5','傻狗6'] print(l[0:3])#['傻狗1', '傻狗2', '傻狗3'] numbers = list(range(1 ...

  4. python基础——切片

    python基础——切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', ...

  5. python基础学习笔记-切片难点

    numbers = [1,2,3,4,5,6,7,8,9,10] print(numbers[5::-2]) print(numbers[10:5:-2]) print(numbers[:5:-2]) ...

  6. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  7. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  8. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  9. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

随机推荐

  1. PCB上的导线 怎么开窗 去掉绿油 把铜皮裸露

    开窗是个专业术语,你可以简单的理解为"去掉绿油,把铜皮裸露". 导线开窗用途一: 例如这个板子中的蛇形天线,就是导线开窗后的效果. 导线开窗用途二: 把需要过大电流的导线开窗,就可 ...

  2. IOS要用到的零碎东西

    有些东西虽然不重要,但是零零碎碎会用到,就做个笔录吧: 协议中有2个关键字可以控制方法是否要实现(默认是@required),在大多数情况下, 用途在于程序员之间的交流 @required:这个方法必 ...

  3. oracle练习题 实验一

    实验一 练习1.请查询表DEPT中所有部门的情况. select * from dept; 练习2.查询表DEPT中的部门号.部门名称两个字段的所有信息. select deptno,dname fr ...

  4. L2-014. 列车调度 (DP)

    火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...

  5. HDU - 4704 sum 大数取余+欧拉降幂

    Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submi ...

  6. cassandra的命令

    cassandra的命令: connect <hostname>/<port> (<username> '<password>')?;    Conne ...

  7. SCUT - 336 - 酋雷姆 - 最小生成树

    每个世界可以和别的世界连通,也可以直接联通虚拟的已经毁灭的世界,这样变成一个最小生成树问题. 但是好像哪里不对? 有人用dp过掉的? 不太清楚怎么搞的. 其实就是最小生成树-- #include< ...

  8. ue4 碰撞检测测试

    记录几条物理相关 测试条件,1使用setActorLocation移动,3使用控制器的移动 1 moveCube  2 targetCube  3 Character 两个Cube的碰撞事件 1和2的 ...

  9. Solr6.7 学习笔记(01) -- 目录结构

    Solr解压后的目录结构 --contrib: Solr的一些扩展 --analysis-extras: 包含一些文本分析组件及其依赖 --clustering: 包含一个用于集群搜索结果的引擎 -- ...

  10. CF1119F Niyaz and Small Degrees【treedp+堆】

    如果枚举d来dp,那么就是设f[u][0/1]为u点不断/断掉和父亲的边,然后优先选取f[v][1]+w(u,v)<=f[v][0]的,如果断掉这些度数还是多就用一个堆维护剩下的按f[v][1] ...