博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numpy创建array【老鱼学numpy】
阅读量:4343 次
发布时间:2019-06-07

本文共 2465 字,大约阅读时间需要 8 分钟。

在上一篇文章中,我们已经看到了如何通过numpy创建numpy中的数组,这里再重复一下:

import numpy as np# 数组a = [[1, 2, 3], [4, 5, 6]]print("a:", a)# 矩阵b = np.array(a)print("b:", b)

执行后输出为:

a: [[1, 2, 3], [4, 5, 6]]b: [[1 2 3] [4 5 6]]

我们可以看到python中的数组和numpy中的数组在屏幕上输出的一些细微的差异:

numpy中的数组输出中是按照行列排列的,并且元素之后是没有逗号分隔的,这样在屏幕输出上我们就能很容易看矩阵,跟数学中矩阵的书写格式比较接近。

我们也可以在创建numpy数组时通过设置dtype来指定数组中元素的类型,例如:

import numpy as np# python数组a = [[1, 2, 3], [4, 5, 6]]print("a:", a)# numpy数组b = np.array(a, dtype=np.float)print("b:", b)

上面我们就定义了numpy数组元素的类型为float类型,其输出为:

a: [[1, 2, 3], [4, 5, 6]]b: [[ 1.  2.  3.] [ 4.  5.  6.]]

在机器学习中,一般我们定义的元素类型为浮点类型np.float和整型np.int。

全0矩阵

想要输出3行4列全部为0的numpy二维数组:

import numpy as npa = np.zeros((3,4))print(a)

输出为:

[[ 0.  0.  0.  0.] [ 0.  0.  0.  0.] [ 0.  0.  0.  0.]]

全1数组

我们也经常会用到全1的数组:

import numpy as npa = np.ones((3, 4), dtype=np.float)print(a)

输出为:

[[ 1.  1.  1.  1.] [ 1.  1.  1.  1.] [ 1.  1.  1.  1.]]

有人可能会注意到定义几行几列的方法,例如(3, 4),这个是python中的元组类型,本质上就是一个数组,但跟数组不一样的地方是其值是只读的,也就是不可改变元组中元素的值。

生成接近于0的数组

import numpy as npa = np.empty((3, 4), np.float)print(a)

输出为:

[[  6.23042070e-307   3.56043053e-307   1.37961641e-306   2.22518251e-306] [  1.33511969e-306   1.24610383e-306   1.69118108e-306   8.06632139e-308] [  1.20160711e-306   1.69119330e-306   1.29062229e-306   1.29060531e-306]]

np.empty()用于生成接近于0的随机数数组。

生成有序的数列或数组

例如:生成一个从10开始到20结束(不包括结束值),步长为2的数列:

import numpy as npa = np.arange(10, 20, 2)print(a)

输出为:

[10 12 14 16 18]

np.arange()还是经常会用到的,看到这个函数,使我联想起python中的range函数,这两者的功能类似,先看个例子:

import numpy as np# python中创建range对象,然后我们把它转换成list对象并打印出来a = range(10, 20, 2)print("python中的range对象:", list(a))# numpy中的arange函数跟python中的range对象类似b = np.arange(10, 20, 2)print("numpy中的arange:", b)

输出为:

python中的range对象: [10, 12, 14, 16, 18]numpy中的arange: [10 12 14 16 18]

这里arange可以记忆为array中的range函数。

改变数组形状

numpy数组的形状非常重要,也就是几行几列。

在进行数组/矩阵运算中要时刻关注数组/矩阵是什么样的形状,比如数组/矩阵的加法、数组/矩阵的叉乘中对其形状都有相应较严格的规定。
有时为了能够改变数组/矩阵的形状,就需要调用np.reshape()的函数。
例如:

import numpy as npa = np.arange(12).reshape(3, 4)print(a)

输出为:

[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]

生成线段

import numpy as npa = np.linspace(1, 10, 20)print(a)

输出为:

[  1.           1.47368421   1.94736842   2.42105263   2.89473684   3.36842105   3.84210526   4.31578947   4.78947368   5.26315789   5.73684211   6.21052632   6.68421053   7.15789474   7.63157895   8.10526316   8.57894737   9.05263158   9.52631579  10.        ]

上述语句生成了从1开始到10,总共有20个数等距的数列。

你可以把它们想象成起始是1,终止是10,总共有20个等距点。

转载于:https://www.cnblogs.com/dreampursuer/p/7816320.html

你可能感兴趣的文章
Hadoop 服务器配置的副本数量 管不了客户端
查看>>
欧建新之死
查看>>
自定义滚动条
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
初识前端作业1
查看>>
ffmpeg格式转换命令
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>
Hive实现oracle的Minus函数
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
RocketMQ配置
查看>>
蚂蚁金服井贤栋:用技术联手金融机构,形成服务小微的生态合力
查看>>
端口号大全
查看>>
机器学习基石笔记2——在何时可以使用机器学习(2)
查看>>
POJ 3740 Easy Finding (DLX模板)
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>
Linux下安装rabbitmq
查看>>
曹德旺
查看>>
【转】判断点在多边形内(matlab)
查看>>