Python Numpy数组的索引和切片

Numpy是Python的一个多维数组对象支持库,最近在看《机器学习实战》的时候经常对一些索引和切片的用法感到困惑,因此自己查了一些资料整理了一下。

1.基本索引

import numpy
x=numpy.array([[1,2],[3.4],[5,6]])
print (x[0])
print(x[0][1])
#
[1, 2]
2

这里创建的是一个三行两列的数组,同C中的数组一样,x[0][1]代表第0行第1列的元素。

2.切片

import numpy
x1= numpy.array([[1,2],[3,4],[5,6],[7,8],[9,0]])
print(x1[1:3])
print(x1[:3])
print(x1[1:])
print(x1[0:4:2])
print(x1[1,1])
#
[[3 4]
 [5 6]]
[[1 2]
 [3 4]
 [5 6]]
[[3 4]
 [5 6]
 [7 8]
 [9 0]]
[[1 2]
 [5 6]]
4

切片有的地方也称为提取,就是将数组中的的某一或某些元素提取出来组成新的数组。

x1[1:3]对应的是起点:第1行,终点第3行(注意:包含起点不包含终点

起点和终点在不赋值的情况下,默认取数组头和数组尾。

第三个参数为切片步长,默认为1

对特定元素的提取与数组索引相同。

3.花式索引

花式索引的操作比较奇葩一点,可以针对你所要提取的行数以特定的序列提取。

import numpy
x1= numpy.array([[1,2],[3,4],[5,6],[7,8],[9,0]])
print(x1[[4,3,2]])

#
[[9 0]
 [7 8]
 [5 6]]

猜你喜欢

转载自blog.csdn.net/banzhuan133/article/details/79600874