鱼C论坛

 找回密码
 立即注册
查看: 5939|回复: 36

[技术交流] 科学运算 深度学习 神经网络 Numpy 【2】多维数组 聪明的鱼油请进,对,就是你

[复制链接]
发表于 2017-7-19 17:39:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 MSK 于 2017-7-19 18:30 编辑

上一贴我们说了 一维数组数据的存取,本帖内容概括:多维数组数据的存取




                               
登录/注册后可看大图


放心,我们的主题和图片没什么关系
等学到差不多,我们也可以做一个三维框架来存储数据~


先来生成一个数组:
  1. array([[ 0,  1,  2,  3,  4,  5],
  2.        [10, 11, 12, 13, 14, 15],
  3.        [20, 21, 22, 23, 24, 25],
  4.        [30, 31, 32, 33, 34, 35],
  5.        [40, 41, 42, 43, 44, 45],
  6.        [50, 51, 52, 53, 54, 55],
  7. ])
复制代码

忘了怎么做的给你个传送门


游客,如果您要查看本帖隐藏内容请回复


二维数组的数据存储

复习一维数组数据存取:
z = np.arange(5)
z[1]与原数组共享数据
z[[1]]copy原数组2号元素(不共享)

那二维数组该怎么办?
如果能把二维数组变为一个个一维数组就好了

  1. >>> a[1]
  2. array([10, 11, 12, 13, 14, 15])
复制代码

Git it!

接下来就可以这么搞~
  1. >>> a[1][2:]
  2. array([12, 13, 14, 15])
  3. >>> a[1][3]
  4. 13
复制代码


其实你也可以这么写:
  1. >>> a[1,2]
  2. 12
  3. >>> a[1,2:]
  4. array([12, 13, 14, 15])
复制代码


还记得共享的事吗?
  1. >>> b = a[1]
  2. >>> b
  3. array([10, 11, 12, 13, 14, 15])
  4. >>> a[1] = 0,0,0,0,0,0
  5. >>> a
  6. array([[ 0,  1,  2,  3,  4,  5],
  7.        [ 0,  0,  0,  0,  0,  0],
  8.        [20, 21, 22, 23, 24, 25],
  9.        [30, 31, 32, 33, 34, 35],
  10.        [40, 41, 42, 43, 44, 45],
  11.        [50, 51, 52, 53, 54, 55]])
  12. >>> b
  13. array([0, 0, 0, 0, 0, 0])
复制代码

二维数组该怎么写?



游客,如果您要查看本帖隐藏内容请回复



那二维数组也加一个中括号就可以了嘛。


  1. <div><font size="1"><div>>>> a</div><div>array([[ 0,  1,  2,  3,  4,  5],</div><div>       [10, 11, 12, 13, 14, 15],</div><div>       [20, 21, 22, 23, 24, 25],</div><div>       [30, 31, 32, 33, 34, 35],</div><div>       [40, 41, 42, 43, 44, 45],</div><div>       [50, 51, 52, 53, 54, 55]])</div><div>>>> c = a[[1]]</div><div>>>> c</div><div>array([[10, 11, 12, 13, 14, 15]])</div><div>>>> a[1] = 0,0,0,0,0,0</div><div>>>> a</div><div>array([[ 0,  1,  2,  3,  4,  5],</div><div>       [ 0,  0,  0,  0,  0,  0],</div><div>       [20, 21, 22, 23, 24, 25],</div><div>       [30, 31, 32, 33, 34, 35],</div><div>       [40, 41, 42, 43, 44, 45],</div><div>       [50, 51, 52, 53, 54, 55]])</div><div>>>> c</div><div>array([[10, 11, 12, 13, 14, 15]])</div><div>>>> </div></font></div><div></div>
复制代码

需要注意的是:
通过[ ] 与[ [ ] ]获取的数组并不相同!!!
a[1]是一个一维数组
a[[1]]是一个二维数组




  1. <div><span style="text-align: justify;"><font color="#000000" face="sans-serif" size="1"><div>>>> b</div><div>array([0, 0, 0, 0, 0, 0])</div><div>>>> c</div><div>array([[10, 11, 12, 13, 14, 15]])</div><div><div style="color: rgb(68, 68, 68); font-family: " microsoft="" yahei",="" tahoma,="" simsun;="" text-align:="" start;"="">>>> c[0][2]</div><div style="color: rgb(68, 68, 68); font-family: " microsoft="" yahei",="" tahoma,="" simsun;="" text-align:="" start;"="">12</div></div></font></span></div><div><font size="1"><div>>>> b[0][2]</div><div>Traceback (most recent call last):</div><div>  File "<pyshell#48>", line 1, in <module></div><div>    b[0][2]</div><div>IndexError: invalid index to scalar variable.</div></font></div>
复制代码




和你想的一样,多维数组也可以通过 整数序列 布尔序列 存取元素

这里不多解释,如果忘了,给你个传送门~
我要说的是:可以通过dtype=np.bool来创建布尔数组~

  1. <div>>>> temp = np.array([0,0,1,0,1,1],dtype=np.bool)</div><div>>>> temp</div><div>array([False, False,  True, False,  True,  True], dtype=bool)</div><div>>>> a[temp,temp]</div><div>array([22, 44, 55])</div>
复制代码



献上终极大图:

游客,如果您要查看本帖隐藏内容请回复



评分

参与人数 2荣誉 +10 鱼币 +10 收起 理由
小甲鱼 + 5 + 5 支持楼主!
不二如是 + 5 + 5 再接再厉

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-19 17:40:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-19 18:21:01 | 显示全部楼层
粉色嘞~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-19 18:30:22 | 显示全部楼层

可爱的粉色加上了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-19 18:45:45 | 显示全部楼层
要干货不要教程。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-19 19:12:35 | 显示全部楼层
~风介~ 发表于 2017-7-19 18:45
要干货不要教程。。。

保证将干活交给鱼C!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-19 19:12:37 | 显示全部楼层
我喜欢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-19 19:15:47 | 显示全部楼层
MSK 发表于 2017-7-19 19:12
保证将干活交给鱼C!!!

小伙子,好好干,不要辜负了组织对你的期望!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-19 19:18:32 | 显示全部楼层
~风介~ 发表于 2017-7-19 19:15
小伙子,好好干,不要辜负了组织对你的期望!

那是当然!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-19 19:24:51 | 显示全部楼层
学习学习中,顶起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-20 01:32:27 | 显示全部楼层
纯干货!支持!

不过隐藏的话最好设置在末尾啦,用户体验会好一些~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-20 09:03:27 | 显示全部楼层
小甲鱼 发表于 2017-7-20 01:32
纯干货!支持!

不过隐藏的话最好设置在末尾啦,用户体验会好一些~

好的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 12:14:34 | 显示全部楼层
感谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-13 20:26:49 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-13 21:34:18 | 显示全部楼层
感谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-13 10:30:18 | 显示全部楼层
每天打开一个彩蛋
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-21 19:00:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-21 11:57:51 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-21 20:52:38 | 显示全部楼层
回复,其实是想看一下隐藏内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 13:57:59 | 显示全部楼层
锤石
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 13:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表