马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 MSK 于 2017-7-19 18:30 编辑
上一贴我们说了 一维数组数据的存取,本帖内容概括:多维数组数据的存取
放心,我们的主题和图片没什么关系 ,
等学到差不多,我们也可以做一个三维框架来存储数据~
先来生成一个数组:array([[ 0, 1, 2, 3, 4, 5],
[10, 11, 12, 13, 14, 15],
[20, 21, 22, 23, 24, 25],
[30, 31, 32, 33, 34, 35],
[40, 41, 42, 43, 44, 45],
[50, 51, 52, 53, 54, 55],
])
忘了怎么做的给你个传送门
二维数组的数据存储
复习一维数组数据存取:
z = np.arange(5)
z[1]与原数组共享数据
z[[1]]copy原数组2号元素(不共享)
那二维数组该怎么办?
如果能把二维数组变为一个个一维数组就好了
>>> a[1]
array([10, 11, 12, 13, 14, 15])
Git it!
接下来就可以这么搞~>>> a[1][2:]
array([12, 13, 14, 15])
>>> a[1][3]
13
其实你也可以这么写:>>> a[1,2]
12
>>> a[1,2:]
array([12, 13, 14, 15])
还记得共享的事吗?>>> b = a[1]
>>> b
array([10, 11, 12, 13, 14, 15])
>>> a[1] = 0,0,0,0,0,0
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[ 0, 0, 0, 0, 0, 0],
[20, 21, 22, 23, 24, 25],
[30, 31, 32, 33, 34, 35],
[40, 41, 42, 43, 44, 45],
[50, 51, 52, 53, 54, 55]])
>>> b
array([0, 0, 0, 0, 0, 0])
二维数组该怎么写?
那二维数组也加一个中括号就可以了嘛。
<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]]是一个二维数组
<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来创建布尔数组~
<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>
献上终极大图:
|