通常,当您使用数组以这种方式索引另一个数组时,numpy期望每个数组R,C等具有相同的形状.例如,假设您要从此数组中提取非零值:

>>> a

array([[1, 3, 0, 0],

[0, 0, 0, 0],

[2, 4, 0, 0],

[0, 0, 0, 0]])

您将创建一个行索引R数组:

>>> R

array([[0, 2],

[0, 2]])

并且列索引C的数组:

>>> C

array([[0, 0],

[1, 1]])

并将它们传递进去:

>>> a[R, C]

array([[1, 2],

[3, 4]])

请注意,这些可以是您喜欢的任何形状 – 输出将采用相同的形状:

>>> RR

array([0, 2, 0, 2])

>>> CC

array([0, 0, 1, 1])

>>> a[RR, CC]

array([1, 2, 3, 4])

但是,如果您的索引数组中有重复,那么您可以通过使用广播来省去一些麻烦.唯一的问题是结果数组必须是可广播的.这意味着你需要明确地给它们额外的尺寸.我将使用切片语法来保留额外的维度.

>>> r = R[0:1,:]

>>> c = C[:,0:1]

>>> r

array([[0, 2]])

>>> c

array([[0],

[1]])

>>> a[r, c]

array([[1, 2],

[3, 4]])

如果你没有明确地给它们额外的尺寸,numpy会尽力理解你已经传递的东西,但它并不总是按预期工作.用0替换0:1切片会删除额外的维度:

>>> rr = r[0,:]

>>> cc = c[:,0]

>>> rr

array([0, 2])

>>> cc

array([0, 1])

>>> a[rr, c]

array([[1, 2],

[3, 4]])

>>> a[r, cc]

array([[1, 4]])

>>> a[rr, cc]

array([1, 4])

第一个([rr,c])是有效的,因为numpy可以从c的形状告诉它应该广播.但另外两个是模棱两可的,所以numpy假设你并不意味着他们被广播.

但是,请注意numpy还提供了使平面阵列可播放的快捷方式.这可以派上用场!

>>> a[numpy.ix_(rr, cc)]

array([[1, 3],

[2, 4]])

python的数组批量赋值_python – 为numpy数组赋值的花式索引相关推荐

  1. python给矩阵赋值_python – 基本Numpy数组值赋值

    作为一个小练习,我开始在 python中使用数字代码,我正在尝试制作LDLT算法.只是为了"弄湿脚". 但是我似乎缺乏对numpy数组的基本理解.请参阅以下示例: def ldlt ...

  2. python将数组写入文件_python – 将numpy数组的大小写入二进制文件

    我需要将2D numpy数组写入文件,包括其尺寸,以便我可以从C程序中读取它并创建相应的数组. 我已经编写了一些保存数组的简单代码,可以从C中读取,但如果我首先尝试编写数组的大小,它总会给我一个错误. ...

  3. python数组长度查询_python – 在numpy数组中查找相同值的序列长度(运行长度编码)...

    在pylab程序中(也可能是一个matlab程序)我有一个代表距离的numpy数组:d [t]是时间t的距离(我的数据的时间跨度是len(d)时间单位) . 我感兴趣的事件是当距离低于某个阈值时,我想 ...

  4. python数组切片效率_python – 对numpy数组切片进行采样的最快方法是什么?

    我有一个3D(时间,X,Y)numpy数组,包含6个小时的时间序列几年. (比如5).我想创建一个采样时间序列,其中包含从可用记录中随机抽取的每个日历日的1个实例(每天5种可能性),如下所示. > ...

  5. python数组元素复制_python的numpy数组 的复制问题?

    还是一句一句来分析吧 第一句 vector = numpy.array([5, 10, 15, 20]) 用numpy生成一个array对象 : vector 然后第二句 equal_to_ten_o ...

  6. python阈值分割_根据阈值分割numpy数组的更快方法

    X[~Z]比X[Z==0]快:In [13]: import numpy as np In [14]: X = np.random.random_integers(0, 1000, size=1000 ...

  7. python遍历字符串数组_Python遍历numpy数组的实例

    Python遍历numpy数组的实例 在用python进行图像处理时,有时需要遍历numpy数组,下面是遍历数组的方法: [rows, cols] = num.shape for i in range ...

  8. python numpy 子数组_Python利用Numpy数组进行数据处理(一)

    Numpy数组使你可以将许多种数据处理任务表达为简洁的数组表达式(否则需要编写循环).用数组表达式代替循环的做法,通常被称为矢量化. np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对 ...

  9. python numpy数组切片_python中numpy数组切片实验解释

    print(a[0::2]).a[::2].[:,2].[1:,-1:].a[::-1].[ : n].[m : ].[-1].[:-1].[1:]等的含义 文章目录 一维数组(冒号:) 1.一个参数 ...

最新文章

  1. java实践源码--哈弗曼树
  2. iOS编程陷井2,模拟器不可靠
  3. Codeforces Round #523 (Div. 2)
  4. 嵌入式linux和pc机的linux对照
  5. MySQL 瓶颈分析及优化
  6. for循环里面嵌套if_信不信两层python嵌套for循环就能把你搞懵了
  7. bzoj3482: [COCI2013]hiperprostor
  8. AC日记——计算循环节长度 51nod 1035
  9. 【Spring-AOP】源码分析汇总
  10. 文件批量改名特工 v1.0 怎么用
  11. 西门子V90电机数字量输出(DO)接倍福数字量输入模块
  12. Unity学习笔记-uniwebview4-网页与unity通信
  13. 学生选课管理信息系统
  14. 中国31省旅游院校数和旅游院校招生数(2009-2017年)
  15. python下载电影链接_Python:输入电影名,爬获取到阳光电影网中对应名称的迅雷下载链接,获取的链接有点问题(具体问题在内容里)...
  16. Android 将自己的应用改为系统应用
  17. java自动化键盘组合键_SELENIUM自动化模拟键盘快捷键操作实现解析
  18. Day9 Four French Words Pronounced Differently in English
  19. 软件工程项目:电梯调度
  20. NFT数字艺术品热潮下,IPFS或成为其最佳的存储解决方案

热门文章

  1. 互联网电视变阵:为何乐视屡遭内容滑铁卢,小米却逆袭成内容之王?
  2. 人一生中要遇到的四个人
  3. 如何用SpringBoot如何写接口
  4. Linux常用命令(netstat/ps/zgrep)
  5. 基于K-MEANS聚类的客户价值分群
  6. OGC标准wms、wmts、wfs等地图服务协议规范 及 arcgis 的永久WMTS 谷歌卫星 卫星影像服务
  7. 易语言修改html内容,易语言修改网页标题源码
  8. Adb push 文件夹到手机目录上
  9. 小驰私房菜_11_mm-camera 添加客制化分辨率
  10. 仿小皮手游网帝国CMS模板源码 大型手游门户网站系统源码+手机版+火车头采集