首先推荐Numpy官方的教程,网址。

很多人会对数组创建函数的参数中什么时候要用括号np.zeros((2, 3)),什么时候不用括号np.eye(3, 5)感到疑惑,这里对它们统一进行梳理。(按照官方文档的分类方法)

1. 一维数组创建函数

最常用的是np.arange()np.linspace()

两者都有开始start和结束stop,区别是arange有步长step而linspace有数目num。

实践上,遇到整数时使用np.arange(),遇到浮点数时由于np.arange()会由于舍入误差使得右端取值不确定(左闭右开或左闭右闭),所以会使用np.linspace()

2. 二维数组创建函数

二维数组创建函数,常用的是三个:单位矩阵np.eye()、对角矩阵np.diag() 和三角矩阵np.tri()

>>> np.eye(3)
array([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])
>>> np.eye(3, 5)
array([[1., 0., 0., 0., 0.],[0., 1., 0., 0., 0.],[0., 0., 1., 0., 0.]])>>> np.diag([1, 2, 3])
array([[1, 0, 0],[0, 2, 0],[0, 0, 3]])
>>> np.diag([1, 2, 3], 1)
array([[0, 1, 0, 0],[0, 0, 2, 0],[0, 0, 0, 3],[0, 0, 0, 0]])
>>> a = np.array([[1, 2], [3, 4]])
>>> np.diag(a)
array([1, 4])>>> np.tri(3, 5, 2, dtype=int)
array([[1, 1, 1, 0, 0],[1, 1, 1, 1, 0],[1, 1, 1, 1, 1]])

注意np.eye()在指定行和列时是不需要加括号的,详细看下文。

3. 一般 ndarray 创建函数

常用的有:全0数组np.zeros()、全1数组np.ones()、空数组np.empty() 、填充数组np.full()。每种函数都有对应的_like函数,传入某个数组就可以参考数组的shape进行构建。创建一维数组的例子如下:

注意生成的一维数组的shape是(3, ),在矩阵乘法中相当于行向量(1, 3),但是不能像行向量那样进行转置。

创建二维数组的例子如下:


留意到只有np.eye()是不加括号的,其他的都要加括号。这是因为np.zeros()np.ones()等传入的第一个参数是shape,而第二个参数是dtype,如果不加括号则会把第一个逗号后的数字误认为是dtype;np.eye()的第二个参数则不是dtype,而是可选的M,所以第一个逗号后的数字是M。

最后是用随机数创建数组,建议用新的写法,因为更快:

Numpy中数组创建函数的辨析相关推荐

  1. 【NumPy中数组创建】

    目录 一.NumPy是什么? 二.利用array创建数组 三.利用arange创建数组 四.随机数创建数组 五.ndarray对象 六.其他方式创建数组 七.数组的切片与索引 一.NumPy是什么? ...

  2. 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) 目录

  3. Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战

    Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战 目录 Python使用numpy中的hstack函数水平堆叠(horizontally stac ...

  4. Numpy中使用astype函数转换numpy数组数据类型

    Numpy中使用astype函数转换numpy数组数据类型 目录 Numpy中使用astype函数转换numpy数组数据类型 numpy是什么?numpy和list有哪些区别? Numpy中使用ast ...

  5. python中tile的用法_Python:numpy中的tile函数

    在学习机器学习实教程时,实现KNN算法的代码中用到了numpy的tile函数,因此对该函数进行了一番学习: tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复 ...

  6. Numpy中数组间运算

    Numpy中数组间运算 1 数组与数的运算     [可以直接进行运算] arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]) arr + ...

  7. Numpy中np.mashgri() 函数介绍及2种应用场景

    @[toc](Numpy中np.mashgri() 函数介绍及2种应用场景 文章目录:) 近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法. 但总觉得印象不深刻,不 ...

  8. Numpy中使用astype函数将字符串格式数据转换为数值数据类型

    Numpy中使用astype函数将字符串格式数据转换为数值数据类型 目录 Numpy中使用astype函数将字符串格式数据转换为数值数据类型 numpy是什么?numpy和list有哪些区别? Num ...

  9. python grid函数_详解numpy中的meshgrid函数用法

    numpy中的meshgrid函数的使用 numpy官方文档meshgrid函数帮助文档https://docs.scipy.org/doc/numpy/reference/generated/num ...

最新文章

  1. 3 css 奖品出现弹出动画_【技术】nuxt中引入wow和animate.css 页面随滚动条出现动画...
  2. linux中的du 命令详解
  3. C++ 反射机制的简单实现
  4. 利用Relations实现多DataTable的聚合
  5. 视觉SLAM笔记(65) 简约总结
  6. C# 二进制数据、图片存入、读出 sql server 数据库
  7. eclipse 配置Maven问题解决办法:新建maven工程时报错:Could not resolve archetype org.apache.maven.archetypes .
  8. css定位position,absolute relative两种情况下,top,left,right,bottom的区别
  9. git命令行命令(1)
  10. 基于python的学生管理系统的设计开题报告_学生信息管理系统设计开题报告
  11. php 1---100之间的和 几种方法
  12. hadoop快速自我学习--hadoop平台管理与维护
  13. CSS - 制作三角形
  14. Set 中 toArray()
  15. 【读书笔记】《牧羊少年奇幻之旅》
  16. LeetCode 2409. 统计共同度过的日子数
  17. 致我们终将组件化的web
  18. QT报make: Circular all <- first dependency dropped.错误解决。
  19. 论文阅读29 | Parameter Sharing Exploration and Hetero-center Triplet Loss for V-TReID
  20. 算了一笔植发的账,决定还是秃着吧

热门文章

  1. 目前市场上用于个人计算机的硬盘尺寸是,第5章-硬盘(计算机组装与维护).docx
  2. C语言九十四之请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理。
  3. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中
  4. Android之华为meta10 pro安卓8.0绑定服务(bindService)失败解决办法
  5. 贪心算法之阿里巴巴与四十大盗(背包问题)
  6. svn之check out没有下载so文件原因和解决办法
  7. [TP5填坑]关于助手函数input一不小心取不到get值的解决办法
  8. print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战
  9. 计算机与交通工程论文,交通工程论文.doc
  10. 计算机专业技能考核方案,计算机专业技能课教学目标考核方案教程.doc