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. 洛谷P1584 魔杖

    题目描述 Smart在春游时意外地得到了一种好东西——一种非常珍贵的树枝.这些树枝可以用来做优质的魔杖! 选择怎样的切割方式来制作魔杖非常重要,关键问题是——一把魔杖既不能太长.又不能太短,且制作出来 ...

  2. 微信接口出现“调用支付jsapi缺少参数appid”

    微信接口出现“调用支付jsapi缺少参数appid” 注意:@Html.Raw(ViewBag.wxJsApiParam),//json串ViewBag.wxJsApiParam是一个在后台拼的一个j ...

  3. redis和memcache的比较

    1.数据类型支持不同 与Memcached仅支持key-value结构不同,Redis支持的数据类型更丰富,同时支持list.set.hash等数据结构的存储: 2.内存管理不同 在Redis中,并不 ...

  4. Hibernate"discriminator-value"用法

    转自:https://blog.csdn.net/iteye_3357/article/details/81862615 1 可能经常遇到这样的情况: 2 3 在数据库表中会有这样的一个字段用来区别记 ...

  5. 性能测试之Jmeter学习(八)

    本节主要学习:断言 JMeter也有像LR中的检查点,本节就来介绍下JMeter的检查点如何去实现. JMeter里面的检查点通过添加断言来完成. 检查点:上一节讲到,我们对用户名和密码进行了参数化, ...

  6. 无法加载MainifestResourceTransformer

    Cannot load implementation hint 'org.apache.maven.plugins.shade.resource.MainifestResourceTransforme ...

  7. debian 7上源码编译MongoDB 3.4版本

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 要想精通一个数据库,除了知道该数据库的功能特性.使用方法等,还需要能够看懂数据库源码,能够使用gdb工具对其 ...

  8. ASP.NETCORE MVC模块化

    ASP.NETCORE MVC模块化编程 前言 记得上一篇博客中跟大家分享的是基于ASP.NETMVC5,实际也就是基于NETFRAMEWORK平台实现的这么一个轻量级插件式框架.那么今天我主要分享的 ...

  9. js call apply bind

    call.apply.bindcat.call(dog, a, b) == cat.apply(dog, [a, b]) == (cat.bind(dog, a, b))() 1.作用 改变函数内的t ...

  10. 小a和uim之大逃离(luogu P1373 dp)

    小a和uim之大逃离(luogu P1373 dp) 给你一个n*m的矩阵,其中元素的值在1~k内.限制只能往下和往右走,问从任意点出发,到任意点结束,且经过了偶数个元素的合法路径有多少个.在此题中, ...