文章说明: 本系列面向全国大中小学的通用数据科学教材,原项目是由
Jin Li大佬整理的python笔记,鄙人学习后添加了许多自己的见解,于是最后写成了这系列手册。
文章目录
生成数组
1. 使用arange
函数
arange函数类似range函数,其返回值为数组。
语法:
# arange(start, stop=None, step=1, dtype=None)
import numpy as np
np.arange(4)
# 返回 array([0,1,2,3])
同时可以为arange
函数生成的数组设置步长:
# 设置步长为0.1
np.arange(0,1,0.1, dtype=np.float)
2. 使用linspace
函数
linspace函数可以生成一个等差数组,其参数列表为起始值、终止值以及数组元素的个数。
# 与arange函数不同的是
# linspace第三个参数设置的是元素个数,而不是步长
np.linspace(0,5,5)
# 返回 array([0,1,2,3,4])
与linspace
相应的还有一个logspace
函数。该函数可以对产生数等距分布的数组,其默认以10为基地,用法与linspace
类似。
3. 生成网格数组
使用meshgrid
函数
meshgrid
函数可以在给定一维坐标阵列x1,x2,…,xn的情况下,为N-D网格上的N-D标量/矢量场的矢量化生成N-D坐标数组。
语法:numpy.meshgrid(*xi, **kwargs)
meshgrid
函数通过索引关键字参数支持这两种索引约定。给字符串ij返回一个带有矩阵索引的网格网格,而xy返回带有笛卡尔索引的网格网格。在输入长度为M和N的二维情况下,xy
索引的输出为形状(N, M)
, ij
索引的输出为形状(M, N)
。在输入长度为M、N和P的三维情况下,xy
索引的输出为形状(N, M, P)
, ij
索引的输出为形状(M, N, P)
。
# 官网给出的例子
xv, yv = np.meshgrid(x, y, sparse=False, indexing='ij')
for i in range(nx):
for j in range(ny):
# 使用ij方式索引返回<i,j>型数组
# treat xv[i,j], yv[i,j]
xv, yv = np.meshgrid(x, y, sparse=