1.获取·数组需要的内容时,进行相应元素的索引 一位数组的索引: 索引的结果: 二维数组的索引操作:下面展示一些 内联代码片。
x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) print(x[2]) print(x[3][2]) print([2,1])’引结果: 切片索引简单定义:对数组的操作得到新的数组,对Python列表的切片操作可以的到原数组的副本,相应的操作(start:stop:step) 实践操作:对一维数组的进行切片,
x=np.array([1,2,3,4,5,4,6,7,8]) print(x[0:2]) print(x[1:5:2]) print(x[2:]) print(x[:2]) print(x[::2]) print(x[:]) print(x[::-1])一维数组切片的结果: 二维数组的简单切片操作:
x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) print(x[0:2]) print(x[1:5:2]) print(x[2:]) print(x[:2]) print(x[-2:]) print(x[:-2])索引切片的结果:
在python中,允许…表示足够多的冒号构建完整的索引列表 实践操作,代码示例:
x=np.random.randint(1,50,[2,2,3]) print(x) print(x[1,...]) print(x[...,2])索引切片的结果:
同时选择多个元素示例:
import numpy as np x=np.array([1,2,3,4,5,6,7,8]) r=[0,1,2] print(x[r]) r=[0,1,-1] print(x[r]) x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) r=[1,2,3] print(x[r])数组索引的结果: 注:(-1)最尾的一位数 获取二维数组4个角的数:
x=np.array([1,2,3,4,5,6,7,8]) r=np.array([[0,1],[3,4]]) print(x[r]) x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) r=np.array([[0,0],[3,3]]) c=np.array([[0,3],[0,3]]) print(x[r,c])索引的结果: 实现切片的整数数组组合:
x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) r=x[0:3,[2,2,3]] print(r)整合输出的结果
建立一个布尔数组,索引目标数组 代码示例:
x=np.array([1,2,3,4,5,6,7,8]) y=x>5 print(y) print(x[x>3]) x=np.array([np.nan,1,2,np.nan,3,4,5]) y=np.logical_not (np.isnan(x)) print(x[y]) x=np.array([[11,12,13,14], [21,22,23,24], [31,32,33,34], [41,42,43,44]]) y=x>15 print(x[y])建立目标数组的结果: 利用数组画三角函数图像:
import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,2*np.pi,50) y=np.sin(x) plt.plot(x,y)图像:
布尔求取大于0的正整数:
x=np.linspace(0,2*np.pi,50) y=np.sin(x) msk=y>=0 print(len(x[msk]))结果显示: 代码示例:
var foo = 'bar';x=np.linspace(0,2*np.pi,50) y=np.sin(x) msk=y>=0 print(len(x[msk])) plt.plot(x[msk],y[msk])图像显示: 代码示例:
import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,2*np.pi,50) y=np.sin(x) msk=y>=0 print(len(x[msk])) plt.plot(x[msk],y[msk],'bo') msk=np.logical_and(x>=0,x<=np.pi/2) print(msk) plt.plot(x[msk],y[msk],'go')图像显示:
