outline
- PyTorch安装
- Jupyter Notebook使用
- NumPy基础知识
- PyTorch基础知识
3. NumPy基础知识
3.4 索引、切片和迭代
-
一维数组就像列表和其他Python序列一样,可以被索引、切片和迭代
image.png -
多维数组可以每个轴有一个索引,这些索引由一个逗号分割的元组给出。当少于轴数的索引被提供时,缺失的索引被认为是整个切片。
b[:,1] #每行第2个元素
-
数组还可以被整数数组和布尔数组索引:
-
通过数组进行索引,这个数组索引的值指的是在目标数组(ndarray)的位置。
image.png -
当被索引数组a是多维的时候,每一个唯一的索引数列指向a的第一维
image.png -
还可以把数组i和j定义成类似[i,j]放到序列中
image.png -
通过布尔来索引
image.png
-
-
迭代
for row in b: #迭代对第一个轴而言
print(row)
for element in b.flat: #对数组中的每个元素进行运算
print(element)
image.png
3.5 数组赋值
会索引就会赋值
3.6 更改数组的形状
- 如果在改变形状操作中某一个维度被设置为-1,该维度将自动被计算
a.reshape(3,4) #新建一个符合目标形状的数组
a.ravel() #返回扁平化数组
- resize 和 reshape功能相同,但resize仅仅改变数组本身,并不会创建新的ndarray数组
3.7 组合、拆分数组
- 组合
- vstack 使多个数组沿着第一个轴组合
- hstack 沿着第二个轴组合
- column_stack 仅支持以序列的顺序将多个一维数组或者一个二维数组按对位组合成新的二维数组
np.vstack((a,b))
np.hstack((a,b))
np.column_stack((a,b))
- 拆分
- vsplit
- hsplit
- split 自由度更高
np.hsplit(a,3) #允许指定返回相同形状数组的个数
np.vsplit(x,np.array([3,6])) #指定在哪些列后发生分割
image.png
3.8 广播
广播的原则能使通用函数有意义地处理不具有相同形状的输入
-
如果所有的输入数组维度不都相同,数值“1”将被重复添加在维度较小的数组上
image.png
有用就留个赞吧^_^
网友评论