#coding=utf-8
import numpy as np
a=np.arange(12)
print(a)
#结果:[ 0 1 2 3 4 5 6 7 8 9 10 11]
#reshape对一维数组进行修改形状 (4,3)修改为4行3列
a=a.reshape((4,3))
print(a)
#结果:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
二维索引的使用
#索引的使用,获取第三行
print(a[2])
#结果:[ 6 7 8]
#索引的使用,获取第二行第三列
print(a[1][2])
#结果:5
二维切片的使用
#切片的使用,[行进行切片,列进行切片] 即[start:stop:step,start:stop:step]
#获取所有行
print(a[:,:])
#结果:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
#获取所有行,部分列 {所有行,第二列}
print(a[:,1])
#结果:[ 1 4 7 10]
#获取所有行,部分列 {所有行,第一、二列}
print(a[:,0:2])
#结果:
[[ 0 1]
[ 3 4]
[ 6 7]
[ 9 10]]
#获取所有列,部分行 {所有列,获取行的步长为2}
print(a[::2,:])
#结果:
[[0 1 2]
[6 7 8]]
#获取所有列,部分行 {所有列,获取行第一、第二行}
print(a[0:2,:])
#结果:
[[0 1 2]
[3 4 5]]
#获取部分行,部分列 {行的奇数行,列的第一、第二列}
print(a[::2,0:2])
#结果:
[[0 1]
[6 7]]
坐标获取 [行,列]
#获取第2行第3列
print(a[1][2]) #结果:5
print(a[1,2]) #结果:5
#同时获取不同行不同列 {获取第2行第3列,第3行第1列}
print(a[1,2],a[2,0])
#结果:{但不是数组形式,可以再通过np.array()转换}
5 6
print(np.array([a[1,2],a[2,0]]))
#结果:[5 6]
#使用坐标获取[(1,2),(2,0)],(1,2)均为行号,(2,0)均为列号,且1和2会自动结合,2和0会自动结合
print(a[(1,2),(2,0)])
#结果:[5 6]
二维索引为负数
#获取最后一行
print(a[-1])
#结果:[ 9 10 11]
#行倒序
print(a[::-1])
#结果:
[[ 9 10 11]
[ 6 7 8]
[ 3 4 5]
[ 0 1 2]]
#行倒序,列倒序
print(a[::-1,::-1])
#结果:
[[11 10 9]
[ 8 7 6]
[ 5 4 3]
[ 2 1 0]]