numpy生成数组的函数
生成数组的函数
arange
arange
类似于Python中的 range
函数,只不过返回的不是列表,而是数组:
arange(start, stop=None, step=1, dtype=None)
产生一个在区间 [start, stop)
之间,以 step
为间隔的数组,如果只输入一个参数,则默认从 0
开始,并以这个值为结束:
与 range
不同, arange
允许非整数值输入,产生一个非整型的数组:
数组的类型默认由参数 start, stop, step
来确定,也可以指定:
由于存在精度问题,使用浮点数可能出现问题:
stop
的值 2.1
出现在了数组中,所以使用浮点数的时候需要注意。
linspace
linspace(start, stop, N)
产生 N
个等距分布在 [start, stop]
间的元素组成的数组,包括 start, stop
。
logspace
logspace(start, stop, N)
产生 N 个对数等距分布的数组,默认以10为底:
产生的值为。
meshgrid
有时候需要在二维平面中生成一个网格,这时候可以使用 meshgrid
来完成这样的工作:
x
对应网格的第一维,y
对应网格的第二维。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cmdef f(x, y):# sinc 函数r = np.sqrt(x ** 2 + y ** 2)result = np.sin(r) / rresult[r == 0] = 1.0return resultx_ticks = np.linspace(-10, 10, 51)
y_ticks = np.linspace(-10, 10, 51)x, y = np.meshgrid(x_ticks, y_ticks)z = f(x, y)fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z,rstride=1, cstride=1,cmap=cm.YlGnBu_r)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
meshgrid
可以设置轴排列的先后顺序:
- 默认为
indexing='xy'
即笛卡尔坐标,对于2维数组,返回行向量x
和列向量y
- 或者使用
indexing='ij'
即矩阵坐标,对于2维数组,返回列向量x
和行向量y
。
ogrid , mgrid
Matlab中有 meshgrid
的用法:
meshgrid(-1:.5:1, -1:.5:1)
Numpy的 meshgrid
并不支持这样的用法,但我们可以使用 ogrid / mgrid
来实现类似这样的用法。
ogrid
与 mgrid
的区别在于:
ogrid
相当于meshgrid(indexing='ij', sparse=True)
mgrid
相当于meshgrid(indexing='ij', sparse=False)
注意:
- 这里使用的是中括号
- Matlab 使用的是
start:step:end
的表示,Numpy 使用的是start:end:step
的表示 - 这里的结果不包括
end
的值
为了包含 end
的值,我们可以使用这样的技巧:
我们在 step
的位置传入一个复数 5j
,表示我们需要一个 5
个值的数组,此时返回值就会包含 end
的值。
重复之前的画图:
y, x = np.ogrid[-10:10:51j, -10:10:51j]z = f(x, y)fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z,rstride=1, cstride=1,cmap=cm.YlGnBu_r)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
这里,我们交换了 x, y
输出值的顺序。
r_
, c_
我们可以使用 r_ / c_
来产生行向量或者列向量。
使用切片产生:
复数步长制定数组长度:
连接多个序列,产生数组:
列向量:
ones , zeros
ones(shape, dtype=float64) zeros(shape, dtype=float64)
产生一个制定形状的全 0
或全 1
的数组,还可以制定数组类型:
empty
empty(shape, dtype=float64, order='C')
也可以使用 empty
方法产生一个制定大小的数组(数组所指向的内存未被初始化,所以值随机),再用 fill
方法填充:
empty_
like, ones_
like, zeros_
like
empty_like(a)
ones_like(a)
zeros_like(a)
产生一个跟 a
大小一样,类型一样的对应数组。
identity
indentity(n, dtype=float64)
产生一个 n
乘 n
的单位矩阵:
numpy生成数组的函数相关推荐
- Numpy中数组创建函数的辨析
首先推荐Numpy官方的教程,网址. 很多人会对数组创建函数的参数中什么时候要用括号np.zeros((2, 3)),什么时候不用括号np.eye(3, 5)感到疑惑,这里对它们统一进行梳理.(按照官 ...
- python数组去重函数_Python科学计算库Numpy之 数组操作
操作ndarray 的方法 numpy.reshape:这个函数在不改变数据的条件下修改形状 numpy.ndarray.flat:该函数返回数组上的一维迭代器,行为类似 Python 内建的迭代器 ...
- np.randon模块,numpy.random模块各函数功能详解,分类描述各个函数功能,生成随机数
因为网上很多文章都是在依次列举各个函数的功能,并没有做分类,所以记忆上还有使用上都不方便. 本文旨在将功能相似的函数放在一起,以及对它们进行辨析和区分,便于精准地调用.未完待续 最权威的参考来源:Ra ...
- python数据分析 - numpy | ndarray数组 | numpy常用函数
文章目录 数据分析 numpy概述 numpy历史 numpy的核心:多维数组 numpy基础 ndarray数组 内存中的ndarray对象 ndarray数组对象的特点 ndarray数组对象的创 ...
- numpy使用np.argmax函数获取一维数组中最大值所在的索引(index of largest value in numpy array with np.argmax)
numpy使用np.argmax函数获取一维数组中最大值所在的索引(index of largest value in numpy array with np.argmax) 目录 numpy使用np ...
- python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)
python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组.使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank) 目录
- python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数
python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方.立方).np.power函数默认返回整数格式.np.float_power函数默认返回浮点 ...
- python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数默认返回浮点数
python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方.立方).np.power函数默认返回整数格式.np.float_power函数默认返回浮点数 目录
- numpy使用np.set_printoptions函数抑制numpy数组输出结果使用科学计数法进行显示(suppressing scientific notation in numpy array)
numpy使用np.set_printoptions函数抑制numpy数组输出结果使用科学计数法进行显示(suppressing scientific notation in numpy array) ...
最新文章
- 智能边缘计算:计算模式的再次轮回
- 1600802002
- MS SQL “ 无法启动分布式事务“问题的解决思路
- 创建linux启动盘,linux系统中如何创建windows启动盘的详细介绍
- LaTex文章中插入Visio及Matlab矢量图
- SpringBoot笔记:SpringBoot2.3集成Logback日志组件配置
- java的runtime类,java中Runtime类的简单应用
- c++2015语言,2015年7月TIOBE编程语言排行榜:C++ 的复兴
- flash特效原理:图片滑动放大效果(2)
- PostgreSQL复制特性历史漫谈-士别三日,当刮目相看
- linux杂谈(十七):iscsi存储分离技术
- python的自省基础
- 关于 C# 请求 https 那点事
- 芝加哥大学计算机专业硕士,芝加哥大学计算机硕士录取条件有哪些?_托普仕留学...
- bzoj1565: [NOI2009]植物大战僵尸
- 文件及代码代码命名规则
- 计算机组成原理输入输出系统——DMA方式
- 艾永亮:只要改变这两点,传统健身房行业可以逃离浩沙死咒
- 传感器技术-光电式传感器(学习笔记十)
- 数据库面试——锁的12连问,赶紧收藏!