矩阵切片
请教群里高手,这个矩阵切片y[:2, 1:2]是什么?我觉得是不是与列表一样,是第0项的第2项,和第1项的第2项?如果是这样,不应该是[ ]才对吗?>>> import numpy as np
>>> y = np.arange(10)
>>> y
array()
>>> y = y
>>> y
array()
>>> y = y.reshape(3,3)
>>> y
array([,
,
])
>>> print(y[:2,1:2])
[
] 本帖最后由 阿奇_o 于 2021-6-11 17:08 编辑
其实,2D矩阵说白了就是“行列”,你只要理解numpy的矩阵里 哪些是行,哪些是列,就能较好地理解其接下来的各种操作。此为关键一。
关键二,切片 就是分别对行和列进行切片,
比如,你这里 y[:2, 1:2] 就是 对行切出第1,2行,对列切出第2列(注意下标索引一般都是左闭右开)
所以,最后 切出来的结果是 arrray([, ] ),打印效果则是你最后那样。
OK,我想你应该可以理解了。。
ps: 或许你们老师应该先教pandas模块,然后再学numpy 。。 {:10_250:}
这样应该更好理解“矩阵”,因为pandas较少涉及抽象的矩阵,更多的是如何操作行列等实用操作。
array[行,列] 默认都是全部逗号前面放行,逗号后面是列
切记 行和列 下标也都是从零开始的 也就是 第一行 对应的下标是0
下面就直接举例子了~
取单行:
array# 这里是取第二行
也可以写成这样:
array# 意思是取第2行 所有列
取多行:
array # 这里是从第3行 至 最后行
也可以这样些:
array
取不连续多行:
array[] # 取 2,4,6,8,10行
也可以这样:
array[,:] # 取 2,4,6行的所有列
取列正好和行位置互换下, 意思不变:
array[:,1]# 取所有行的第2列
取连续的多列:
array[:,3:] # 取第4列后面的每一列
取不连续多列:
array[:,] #取第 2,3,4列
取值是:
array # 取第三行 第6列的值
取多个值:
array[(0,2),(4,6)] # 取第1行第5列的值 和 第3行第7列的值
非常清楚,学习了,谢谢!
页:
[1]