创建numpy.array,是使用numpy这个核武器的基础,本文尽量汇总常用创建numpy.array的方法。

array函数

>>> import numpy as np

>>> a = np.array([1,2,3,4,5])

>>> a

array([1, 2, 3, 4, 5])

>>> a.shape

(5,)

>>> a.ndim

1

>>> a.dtype

dtype('int32')

>>>

>>> b = np.array((1,2,3,4,5.0))

>>> b

array([1., 2., 3., 4., 5.])

>>> b.shape

(5,)

>>> b.ndim

1

>>> b.dtype

dtype('float64')

a用list创建,b用tuple创建,都一样。注意创建b时,tuple中有一个float,这时numpy将所有数据都转换成了它自己的float64类型。numpy.array中不允许有不同类型的数据同时存在。

我们还可以通过array函数创建多维数组:

>>> c = np.array(([1,2,3],[4,5,6],[7,8,9]))

>>> c

array([[1, 2, 3],

[4, 5, 6],

[7, 8, 9]])

>>> c.shape

(3, 3)

>>> c.ndim

2

>>>

>>> d = np.array([[1,2,3],[4,5,6],[7,8,9.0]])

>>> d.dtype

dtype('float64')

>>> d

array([[1., 2., 3.],

[4., 5., 6.],

[7., 8., 9.]])

创建array时,可以指定dtype:

>>> e = np.array((1,2,3), dtype=np.int64)

>>> e

array([1, 2, 3], dtype=int64)

>>>

>>> f = np.array((1,2,3), dtype=np.float16)

>>> f

array([1., 2., 3.], dtype=float16)

zeros函数

用zeros函数创建全0的array:

>>> a = np.zeros((2,3))

>>> a

array([[0., 0., 0.],

[0., 0., 0.]])

>>>

>>> b = np.zeros((3,5), dtype=np.int8)

>>> b

array([[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0]], dtype=int8)

zeros_like函数

创建一个全0的,跟输入的array的shape一样的:

>>> a = np.array([[1,2,3],[4,5,6]])

>>> a

array([[1, 2, 3],

[4, 5, 6]])

>>> b = np.zeros_like(a)

>>> b

array([[0, 0, 0],

[0, 0, 0]])

>>> a.shape

(2, 3)

>>> b.shape

(2, 3)

>>> c = np.zeros_like(a, dtype=np.uint8)

>>> c

array([[0, 0, 0],

[0, 0, 0]], dtype=uint8)

>>> c.shape

(2, 3)

ones函数

跟zeros函数一样,创建全1的numpy.array,代码略。

ones_like函数

跟zeros_like函数一样,全1而已,注意这些函数都可以指定dtype。

empty函数

跟zeros和ones一样,不一样的地方在于,empty函数不对数据做初始化,即所有的内部数据都是随机的,看内存什么样子。有的时候使用empty函数,不做初始化,还可以进一步提高计算速度。

>>> a = np.empty((5,5))

>>> a

array([[0.00000000e+000, 2.30226697e-307, 2.30240278e-307,

2.30259291e-307, 2.30275588e-307],

[2.13425923e-307, 2.13439504e-307, 2.13453085e-307,

2.13473456e-307, 2.13493827e-307],

[2.13504692e-307, 2.13527779e-307, 2.13554940e-307,

2.13572595e-307, 2.13591609e-307],

[2.51437149e-307, 2.51456162e-307, 2.51476533e-307,

2.51500978e-307, 2.51517275e-307],

[2.51537647e-307, 2.51562092e-307, 2.51582463e-307,

2.51598760e-307, 2.28647257e-317]])

empty_like函数

跟其它*_like函数一样,也跟自己的empty一样,不做初始化。代码略。

arange函数

a range,一个范围,就像python内置的range一样:

>>> a = np.arange(10)

>>> a

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> b = np.arange(0,100,5)

>>> b

array([ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80,

85, 90, 95])

>>> c = np.arange(20).reshape(5,4)

>>> c

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[12, 13, 14, 15],

[16, 17, 18, 19]])

>>> c.shape

(5, 4)

>>>

>>> d = np.arange(0,1,0.01).reshape(10,10)

>>> d

array([[0. , 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09],

[0.1 , 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19],

[0.2 , 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29],

[0.3 , 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39],

[0.4 , 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49],

[0.5 , 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59],

[0.6 , 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69],

[0.7 , 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79],

[0.8 , 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89],

[0.9 , 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99]])

跟python内置的range不一样的地方是,step可以是小数,不过一般不建议这样用,要产生均匀间隔的数据,建议使用下面这个函数:linspace

linspace函数

设置起点和终点,设置一共取多少个数:

>>> a = np.linspace(0,1,100).reshape(10,10)

>>> a

array([[0. , 0.01010101, 0.02020202, 0.03030303, 0.04040404,

0.05050505, 0.06060606, 0.07070707, 0.08080808, 0.09090909],

[0.1010101 , 0.11111111, 0.12121212, 0.13131313, 0.14141414,

0.15151515, 0.16161616, 0.17171717, 0.18181818, 0.19191919],

[0.2020202 , 0.21212121, 0.22222222, 0.23232323, 0.24242424,

0.25252525, 0.26262626, 0.27272727, 0.28282828, 0.29292929],

[0.3030303 , 0.31313131, 0.32323232, 0.33333333, 0.34343434,

0.35353535, 0.36363636, 0.37373737, 0.38383838, 0.39393939],

[0.4040404 , 0.41414141, 0.42424242, 0.43434343, 0.44444444,

0.45454545, 0.46464646, 0.47474747, 0.48484848, 0.49494949],

[0.50505051, 0.51515152, 0.52525253, 0.53535354, 0.54545455,

0.55555556, 0.56565657, 0.57575758, 0.58585859, 0.5959596 ],

[0.60606061, 0.61616162, 0.62626263, 0.63636364, 0.64646465,

0.65656566, 0.66666667, 0.67676768, 0.68686869, 0.6969697 ],

[0.70707071, 0.71717172, 0.72727273, 0.73737374, 0.74747475,

0.75757576, 0.76767677, 0.77777778, 0.78787879, 0.7979798 ],

[0.80808081, 0.81818182, 0.82828283, 0.83838384, 0.84848485,

0.85858586, 0.86868687, 0.87878788, 0.88888889, 0.8989899 ],

[0.90909091, 0.91919192, 0.92929293, 0.93939394, 0.94949495,

0.95959596, 0.96969697, 0.97979798, 0.98989899, 1. ]])

从0到1,100个数。

reshape函数

顾名思义吧,就是一个数组重新变换一下形状,变成多维的。上面的代码已经有很多地方在直接使用reshape函数了,请参考。

再给一个用reshape将一维转四维的示例:

>>> a = np.linspace(0,1,100).reshape(2,5,2,5)

>>> a

array([[[[0. , 0.01010101, 0.02020202, 0.03030303, 0.04040404],

[0.05050505, 0.06060606, 0.07070707, 0.08080808, 0.09090909]],

[[0.1010101 , 0.11111111, 0.12121212, 0.13131313, 0.14141414],

[0.15151515, 0.16161616, 0.17171717, 0.18181818, 0.19191919]],

[[0.2020202 , 0.21212121, 0.22222222, 0.23232323, 0.24242424],

[0.25252525, 0.26262626, 0.27272727, 0.28282828, 0.29292929]],

[[0.3030303 , 0.31313131, 0.32323232, 0.33333333, 0.34343434],

[0.35353535, 0.36363636, 0.37373737, 0.38383838, 0.39393939]],

[[0.4040404 , 0.41414141, 0.42424242, 0.43434343, 0.44444444],

[0.45454545, 0.46464646, 0.47474747, 0.48484848, 0.49494949]]],

[[[0.50505051, 0.51515152, 0.52525253, 0.53535354, 0.54545455],

[0.55555556, 0.56565657, 0.57575758, 0.58585859, 0.5959596 ]],

[[0.60606061, 0.61616162, 0.62626263, 0.63636364, 0.64646465],

[0.65656566, 0.66666667, 0.67676768, 0.68686869, 0.6969697 ]],

[[0.70707071, 0.71717172, 0.72727273, 0.73737374, 0.74747475],

[0.75757576, 0.76767677, 0.77777778, 0.78787879, 0.7979798 ]],

[[0.80808081, 0.81818182, 0.82828283, 0.83838384, 0.84848485],

[0.85858586, 0.86868687, 0.87878788, 0.88888889, 0.8989899 ]],

[[0.90909091, 0.91919192, 0.92929293, 0.93939394, 0.94949495],

[0.95959596, 0.96969697, 0.97979798, 0.98989899, 1. ]]]])

eye函数

eye函数应该是取I的谐音,用于创建单位矩阵(Identity matrix):

>>> a = np.eye(5)

>>> a

array([[1., 0., 0., 0., 0.],

[0., 1., 0., 0., 0.],

[0., 0., 1., 0., 0.],

[0., 0., 0., 1., 0.],

[0., 0., 0., 0., 1.]])

>>>

>>> a = np.eye(7)

>>> a

array([[1., 0., 0., 0., 0., 0., 0.],

[0., 1., 0., 0., 0., 0., 0.],

[0., 0., 1., 0., 0., 0., 0.],

[0., 0., 0., 1., 0., 0., 0.],

[0., 0., 0., 0., 1., 0., 0.],

[0., 0., 0., 0., 0., 1., 0.],

[0., 0., 0., 0., 0., 0., 1.]])

>>>

>>> a = np.eye(7, dtype=np.uint8)

>>> a

array([[1, 0, 0, 0, 0, 0, 0],

[0, 1, 0, 0, 0, 0, 0],

[0, 0, 1, 0, 0, 0, 0],

[0, 0, 0, 1, 0, 0, 0],

[0, 0, 0, 0, 1, 0, 0],

[0, 0, 0, 0, 0, 1, 0],

[0, 0, 0, 0, 0, 0, 1]], dtype=uint8)

full函数

用同一个固定的数字来填满array中所有的空隙,zeros是用0填,ones是用1填,empty是不填,随机。

>>> a = np.full((3,4), 8)

>>> a

array([[8, 8, 8, 8],

[8, 8, 8, 8],

[8, 8, 8, 8]])

>>> a

array([[8, 8, 8, 8],

[8, 8, 8, 8],

[8, 8, 8, 8]])

>>>

>>> a = np.full((3,4), 8, dtype=np.float64)

>>> a

array([[8., 8., 8., 8.],

[8., 8., 8., 8.],

[8., 8., 8., 8.]])

>>> a = np.full((3,4,5), 8, dtype=np.float64)

>>> a

array([[[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.]],

[[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.]],

[[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.],

[8., 8., 8., 8., 8.]]])

-- EOF --

python创建数组的方法_numpy创建array的方法汇总相关推荐

  1. Python实验一:创建数组并进行运算、创建一个国际象棋棋盘

    目录 一.题目描述 1.创建数组并进行运算 2.创建一个国际象棋棋盘 二.实现代码: 1.创建数组并进行运算 2.创建一个国际象棋棋盘 一.题目描述 1.创建数组并进行运算 (1).创建一个数值范围为 ...

  2. java创建数组的方式_Java创建数组的几种方式总结

    1.一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不 ...

  3. python定义数组并输入_python创建数组的方法

    一 直接定义法: 1.直接定义 matrix=[0,1,2,3] 2.间接定义 matrix=[0 for i in range(4)] print(matrix) 二 Numpy方法: Numpy内 ...

  4. php创建数组教程,PHP中使用array函数新建一个数组

    PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合 ...

  5. python构造数组并命名_Numpy数组追加命名列

    np.core.records在创建和操作结构化数组方面有一些很好的函数,但是知道如何从头开始构造这样的数组也是很好的.在 您的genfromtxt已从一个包含简单字符串值列的文件中读取.我可以用字符 ...

  6. python自带的统计函数_NumPy统计函数的实现方法

    numpy.amin()和numpy.amax() numpy.amin()用于计算数组中元素沿着指定轴的最小值. numpy.amax()用于计算数组中元素沿着指定轴的最大值 a=np.array( ...

  7. Python循环数组的几种好用的方法

    这里简单总结下Python的遍历数组的三种方式. 遍历方式 假设:nums=[4,5,6,10,1] #第一种,for in的语法,这种语法很方便,但是在写Python算法里面用到的少 for num ...

  8. python创建二维数组的方法_Python创建二维数组的正确姿势

    本文原创发布于微信公众号「极客猴」,欢迎关注第一时间获取更多原创分享 List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此 ...

  9. html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法

    JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...

最新文章

  1. android新浪微博sdk登录获取用户名_多账户的统一登录方案
  2. golang的mahonia字符集转换工具用法
  3. Linux关于文件的权限笔记
  4. 作为开发人员,这四类Code Review方法你都知道吗?
  5. 使用py2neo指定neo4j具体的数据库
  6. Java多线程——线程安全问题
  7. Java面试题---基础篇
  8. OpenStack icehouse系列之问题处理
  9. Restful无状态请求和网关
  10. ARM各内核系列整型运算能力对比---DMIPS / MHz
  11. Mac 远程 屏幕共享 screen sharing
  12. 计算机专业朋友圈文案,朋友圈文案合集_用来发微信朋友圈的句子
  13. CSS display 属性详解
  14. Qt与Matlab混合编程中mwArray数组使用详解
  15. 微信公众平台开发-消息管理-发送模板消息
  16. 基于springboot小型车队管理系统 毕业设计-附源码061709
  17. 一键反推食谱,与狗对话,识别女票表情…愚人节,AI 也被玩坏了...
  18. 下载 https://github.com/android 上的全部源代码
  19. 说说fanIn和fanOut
  20. 微信小程序:超强大微信小程序源码下载内含几十款功能王者战力查询,游戏扫码登录,王者巅峰信息查询等等支持流量主收益和CPS收益

热门文章

  1. ssh远程执行命令 linux,【Linux】SSH 远程执行命令
  2. mysql 命令desc tables_oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集...
  3. 在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...
  4. Win11黑夜模式在哪开启 Win11黑夜模式怎么开启
  5. UC浏览器电脑版怎么开启免费WiFi
  6. 腾讯视频怎么删除收藏的内容
  7. win7纯净版镜像系统安装教程
  8. vant+cell+picker+级联选择默认选中
  9. Guava 实用操作集合
  10. android创建空文件,ADT 更新 eclipse srclayout 文件夹创建时候为空