一、ndarray 的重要属性

  • dtype属性:返回ndarray数组的数据类型,数据类型的种类。
  • ndim属性:返回数组维度的数量。
  • shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple)。
  • size属性:返回用来保存元素的数量,相当于shape中n×m的值。
  • T属性:返回数组转置。

二、切片

1. 一维切片

import numpy as np

arr_1d = np.arange(12)

arr_1d[:4]		# 省却起始,默认从0开始
arr_1d[6:11]
arr_1d[0:11:2]		# 指定步长为 2
arr_1d[12:6:-1]		# 反向切片

1. 二维切片

如果是多维数组,只需在每个维度之间用 ‘,’ 隔开。

import numpy as np
arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
arr_2d[0:2, 0:2]

arr_2d[0:2, -3:]		#前2行,倒数第3列开始

arr_2d[-2:, ::2]		# 倒数第2行开始 列根据步长2,每隔一列取一列

三、索引

1. 一维数组索引

import numpy as np

arr_1d = np.arange(12)
arr_1d[4]  
arr_1d[-2]		# 反向索引
arr_1d[[2,4,6,7,8,9]]		# 同事索引多个

2. 二维数组索引

import numpy as np

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
arr_2d[1, 2]
arr_2d[-1, -1]		# 反向索引


# 如果索引比维度少的多维数组,则会获得一个子维数组
arr_2d[2]		# 取 index=2 的行
# out array([ 7,  8,  9, 10])

arr_2d[2][0]		#  index=2 的行后,再去index=0 的列
# out 7

arr_2d[[2,0]]		# 同时取 index =2 和 index=0 的行
# out array([[ 7,  8,  9, 10], [ 1,  2,  3,  4]])

3. 布尔索引

布尔索引就是根据条件筛选,判断每个元素在条件下是True还是False,也就是布尔值,当条件判断True时,返回。当条件判断为False时,过滤掉。

import numpy as np

arr_1d = np.arange(12)
arr_1d[[False, False, False, False, False,  True,  True,  True,  True, True,  True,  True]]
# out array([ 5,  6,  7,  8,  9, 10, 11])

arr_1d>=5
# out array([False, False, False, False, False,  True,
#  True,  True,  True, True,  True,  True])

arr_1d[arr_1d>=5]
# out array([ 5,  6,  7,  8,  9, 10, 11])

4. 非运算

arr_1d[~(arr_1d>=5)]
# out array([0, 1, 2, 3, 4])

5. 或运算

只要对应的二个二进位有一个为1时,结果位就为1。

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])

(arr_2d>=8) | (arr_2d<=2)
# out array([[ True,  True, False, False],
#       [False, False, False, False],
#       [False,  True,  True,  True]])


arr_2d[(arr_2d>=8) | (arr_2d<=2)]
# out array([ 1,  2,  8,  9, 10])

6. 与运算

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])

arr_2d[(arr_2d<=8) & (arr_2d>=2)]
# ount array([2, 3, 4, 4, 5, 6, 7, 7, 8])

到此这篇关于Python numpy ndarray属性,索引,切片的文章就介绍到这了,更多相关Python numpy ndarray 内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python numpy ndarray属性,索引,切片的更多相关文章

  1. ios – 如何在swift3中增加String.Index?

    在swift2.3中运算符用于string.index增加例如.一世我改为swift3代码发生了“一元运算符”不能应用于’@valueString.Index’类型的操作数(又名’@lvalueString.CharacterView.Index’)“在swift3中我改写了例如.i=1但是这段代码无法解决.请帮我.解决方法String.Index是String.CharacterView.Ind

  2. ios – CoreData有序关系 – 使用NSFetchRequest批量取消

    或者,是否存在批量不支持的API,它不是私有的?解决方法目前我有一个解决方案,但不是一个干净的解决方案:我希望按照有序关系中的20个小组进行批量修改.所以,每次我索引一个索引,它的索引除以20,我为接下来的20使用新的NSFetchRequest,并通过调用公共字段名称来解除它们.

  3. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  4. ios – Swift中的PageViewController当前页面索引

    我想获取一个pageViewController的当前索引,我不知道我如何获取可见页索引.解决方法您可以使用didFinishAnimating,并将标签设置为查看控制器.尝试这个

  5. ios – OpenGL – 为什么GL_ELEMENT_ARRAY_BUFFER的索引?

    我目前是OpenGLES2.0领域的新手,希望尽可能地了解绑定,缓冲区,着色器等.截至目前,我只是想了解GL_ELEMENT_ARRAY_BUFFER和GL_ARRAY_BUFFER之间的差异,以及何时使用每个注释的预设.我目前的理解使我相信GL_ELEMENT_ARRAY_BUFFER是专门用于所述三角形的索引,而另一个则是其他的.有人可以详细说明为什么,如果这是正确的?GL_ELEMENT_A

  6. 如何恢复索引功能? (Xcode中)

    我的一个项目刚刚开始干扰索引过程.索引过程在中途冻结,然后突然停止,导致SourceKitService崩溃.我根本无法找到错误的代码;因为似乎没有!)–但它无法被索引.最初,我以为它是一个Xcode7.2的问题,所以升级到最新的beta(7.3);但是问题依然存在.我无法恢复到我的旧代码,因为太多的工作将被撤销,我无法发现特定的文件.崩溃报告是here.为了澄清,Xcode本身不会崩溃,只有索引过程.关于如何解决这个问题的任何想法?

  7. ios – Swift:通过索引移动数组中的元素

    给定n个元素的阵列,即vararray=[1,2,3,4,5]我可以写一个扩展到Array,所以我可以修改数组来实现这个输出:[2,5,1]:有没有办法实现这样的功能,可以通过任何索引(正或负)来移动数组.我可以用if-else子句强制执行这个功能,但是我正在寻找的是功能实现.算法很简单:>按提供的索引将数组拆分成两个>将第一个数组追加到第二个数组的末尾有没有什么办法实现它的功能风格?

  8. ios – 从imageview点击手势获取索引或标签值

    这是来自应用商店的图像,只要我们搜索任何应用程序.我也想添加相同的scrollview概念,它显示当前图像与上一个和下一个图像的小预览.我可以在Samplecode的帮助下做出这个观点.但是当用户点击任何图像时,没有找到任何解决方案来获取索引或标签值.所以我可以打开每个图像的详细页面.如果有人有这个想法,请帮助我.提前致谢.解决方法将手势识别器添加到必要的图像视图中:然后在手势处理程序中访问附加到的视图手势识别器:

  9. ios – 不能下标'[NSObject:AnyObject]类型的值?具有“String”类型的索引

    意味着一个可选的类型,这意味着你试图在本质上是一个枚举上调用一个下标.当你尝试这样做时,没有下标声明,所以系统阻塞.通过添加?我们在说,如果可能,打开这个值,然后调用下标.这样一来,系统就会推测出下面的声明类型[NSObject:AnyObject],一切都可以.你也可以使用!强制解开,但如果苹果没有,这将会崩溃.写另一种可能的方式是:这样,苹果不再是可选的,它将始终具有下标语法.不需要解开包装

  10. iOS DeepLinking中是否需要Google App Indexing SDK?

    我想在我的网页和iOS应用中使用GoogleAppIndexing.我确实支持使用ApplesSearch的UniversalLinks(或Googlelingo中的深层链接)并相应地设置我的网页.从Googlesdocumentation开始,我无法确定是否真的需要添加GoogleAppIndexingSDK.SDK没有给我任何必需的功能,我宁愿跳过它–但谷歌是否依靠SDK才能做到这一点?我没有

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部