文章说明: 本系列面向全国大中小学的通用数据科学教材,原项目是由
Jin Li大佬整理的python笔记,鄙人学习后添加了许多自己的见解,于是最后写成了这系列手册。
本文代码均在jupyter notebook上实现。
文章目录
数组形状
修改数组形状
先来创建一个数组:
a = arange(6)
a
# array([0,1,2,3,4,5])
将其形状修改为2*3:
a.shape = 2,3
a
"""
array([[0, 1, 2],
[3, 4, 5]])
"""
使用
shape
方法会修改原数组。
另一种修改形状方式——使用reshape
函数
a.reshape(2,3)
"""
array([[0, 1, 2],
[3, 4, 5]])
"""
注意:
reshape
函数不会修改原数组的值,而是返回一个新数组。
Warning:shape
和reshape
虽然都能修改数组形状,但是不能改变数组中的元素总数,例如2*3
的数组是无法修改形状为3*3
的。
增加数组维数
使用newaxis
来增加数组的维数:
# 创建一个一维数组
a = arange(3)
shape(3)
# (3L,)
# 向a数组前插入一个长度为1的维度
y = a[newaxis, :]
shape(y)
# (1L,3L)
当然,根据newaxis
插入的位置不同,可以返回不同形状的数组,也可以增加多个维数:
y = a[:, newaxis]
shape(y)
# (3L, 1L)
y = a[newaxis, newaxis, :]
shape(y)
# (1L, 1L, 3L)
去除数组多余轴
使用squeeze
方法,可以去除数组中所有长度为1的维度,例如下例:
a = arange(6)
a.shape = (2,1,3)
# 此时使用squeeze,将a数组多余的1去除,这里1代表长度为1的维度
b = a.squeeze()
shape(b)
# (2L, 3L)