【Python】数组索引到底怎么整?
本文主要探索如何在python中获得一个数组里的指定行和列(子数组)。
【生成数组】
我们要获得子数组,首先得生成一个数组,这里调用python里的numpy库,生成一个5行3列的顺序顺组。
import numpy as np
a = np.arange(15).reshape((5, 3))
结果如下图:
【获得子数组索引】
比如我们要取出 a 数组中的第2,4行和第1,2列生成数组 b ,数组 b 如下图所示:
由于python中数组的索引是从0开始的,那么此时我们的行索引就是[1,3],列索引就是[0,1]。
【使用索引取数据】
如果直接像matlab一样,行列一起索引,得到的结果有点意外。如下图所示:
所以,我们行和列分开取数据
b = a[:,[0,1]]
b = b[[1,3],:]
结果如下图:
这里就是先把第1,2列取出来生成新数组,然后在新数组里取出2,4行。当然行列取出的顺序可以更换。
【BUG】
以上其实还是很简单的,如果使用过matlab,可以说的很好理解的,但是就是这个python数组索引,我居然搞了两天,时刻怀念matlab。
大家注意,上面这些是在命令行里执行的,如果放到代码中,可能会出现以下问题:
IndexError: too many indices for array
TypeError: list indices must be integers or slices, not tuple
TypeError: only size-1 arrays can be converted to Python scalars
简直让你分分钟崩溃,就是个数组索引,python怎么这么会玩?
【DEBUG】
1、首先注意我们是从数组 a 里获得子数组 b ,所以如果你 a 的格式(type)是列表(list)的话,你需要转成数组
a= np.array(a)
2、行索引和列索引的格式是列表,而不是数组,转换函数如下:
Index = Index.tolist();
3、如果上面两个格式对了,但是还是报错的话,你需要考虑一下,你代码中类(class)里的对象(object)里的数据成员调用问题
首先,我们在方法__init__中定义了,很多数据成员,如self.feats = []。
然后,如果你在其他方法中要调用它的时候,又重新对他初始化,如上图:
feats = feats + 2
再对其进行运算时,可能就报错了。
所以,在调用这些数据时,全部从类中导出,比如
self.feats = self.feats + 2
这样就避免了很多问题~
猜你喜欢:
【Python】数组索引到底怎么整?相关推荐
- python数组索引和切片_python numpy数组的索引和切片的操作方法
NumPy - 简介 NumPy 是一个 Python 包. 它代表 "Numeric Python". 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric, ...
- Python 数据分析三剑客之 NumPy(二):数组索引 / 切片 / 广播 / 拼接 / 分割
CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...
- python数组操作加法_Numpy数组索引和/或加法似乎是
我一直在研究numpy数组的基准测试,因为当我试图在脚本中用numpy数组替换python数组时,得到的结果比预期的要慢.在 我知道我错过了什么,我希望有人能澄清我的无知.在 我创建了两个函数并计时N ...
- python numpy array索引_Python NumPy 数组索引
1.访问数组元素 数组索引与访问数组元素相同. 您可以通过引用其索引号来访问数组元素. NumPy数组中的索引以0开头,这意味着第一个元素的索引为0,第二个元素的索引为1等. 例如: 从以下数组中获取 ...
- B07_NumPy 高级索引(整数数组索引,布尔索引,花式索引)
NumPy高级索引 NumPy 比一般的 Python 序列提供更多的索引方式.除了之前看到的用整数和切片的索引外,数组可以由整数数组索引.布尔索引及花式索引. 整数数组索引 以下实例获取数组中(0, ...
- A02_Python(基本数据类型,容器,函数,类),Numpy(数组array,数组索引,数据类型,数组中的数学,广播)
Python的版本 基本数据类型 与大多数语言一样,Python有许多基本类型,包括整数,浮点数,布尔值和字符串.这些数据类型的行为方式与其他编程语言相似. Numbers(数字类型):代表的是整数和 ...
- python 数组 运算_python数据分析(二) python numpy--数组和矢量运算--数组对象
Numpy numpy是数值计算最重要的基础包,几乎所有的科学运算的模块底层所用的都是numpy数组. Numpy本身没有提供多么高级的数据分析功能,他所提供的功能主要是: 1.具有矢量算术运算(用数 ...
- python数组遍历输出所有组合_python遍历列表和数组实例讲解
python遍历实例总结 python同时遍历数组的索引和值的实例 你想在迭代一个序列的同时跟踪正在被处理的元素索引. 获取索引 内置的 enumerate() 函数可以很好的解决这个问题: > ...
- [转载] python数组的使用
参考链接: Python中整数的最大可能值是多少? 原文地址为: python数组的使用 python数组的使用 python数组的使用 2010-07-28 17:17 1.Python的数组分三种 ...
最新文章
- 华为开源加法神经网络 | CVPR20 Oral
- 货物与产品的区别_详解海外仓与保税仓的区别特点!
- 金山网盾3.5.3版本预升级公告
- cursor.execute(sql) 执行结果集是有记录的 但是num=cursor.rownumber 返回值为0
- WPF XAML 从零开始认识XAML
- cv mat的shape_将ndarray转换为cv::Mat的最简单方法是什么?
- JVM笔记(一)数字在JVM中的表示
- java10个整数反向输出_输入一个整数,实现反转输出,如输入123,输出321。
- java递推_【Java】递归递推的应用
- 机器人动力学-拉格朗日方程
- mysql程序设计考试app_MySQL数据库设计与应用知到APP期末考试完整答案
- python雷达算法实现_基于Python的气象雷达工具包研究
- android手机如何截屏快捷键,手机截屏怎么弄,手把手教你手机截图方法
- 构造可以使n个城市连接的最小生成树—C语言实现
- 阅读笔记--计算机网络 自顶向下方法
- PP相关的 bapi
- 速写,没有前因后果,没有背景交待……
- BZOJ 1057 棋盘制作(最大黑白相间子矩阵)
- 【网络安全】一款针对Flutter的逆向工程分析工具
- 推荐60多个CSS GALLERY画廊网站
热门文章
- C#泛型委托,匿名方法,匿名类
- 从一个小demo开始,体验“API经济”的大魅力
- xcode项目集成CocoaPods
- 1:tcl-8.5.13-8.el7.x86_64: [Errno 256] No more mirrors to try.
- NO.152 移动互联时代如何做企业营销
- nyoj-205--求余数--(大整数取模)
- 数据结构(严蔚敏)之五——循环队列(c语言实现)
- numpy.random详解
- 简单API接口签名验证
- 第七章之main函数和启动例程