# 多维数组操作
a = np.arange(6)
a.shape = 2,3 # 改变原数组
'''array([[0, 1, 2],
[3, 4, 5]])'''
# 数组形状 与之对应的方法是reshape,但他不会修改原来数组的值,而是返回一个新数组
a.reshape(2,3) #不改变原数组返回新数组
#转置
a = a.reshape(2,3)
a.T
a.traspose() #以上两种方法都不会改变原数组,返回一个新数组
# 数组连接
# np.concatenate((a0,a1,a2,a3),axis=0) 注意这些数组要用小括号,除了给定的轴外,这些数组的其他轴的长度必须是一样的
a = np.reshape(np.arange(6))
b = a.copy()
np.concatenate((a,b))
'''array([[0, 1, 2],
[3, 4, 5],
[0, 1, 2],
[3, 4, 5]])'''
np.concatenate((a,b),axis=1)
'''array([[0, 1, 2, 0, 1, 2],
[3, 4, 5, 3, 4, 5]])'''
# 注意到这里a,b形状相同,还可以将它们连接成三维的数组,但是concatenate不能提供这样的功能,不过可以这样
np.array((a,b))
'''np.array((a,b))
array([[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]]]) 可以将三维看成以二维为元素'''
# 事实上,numpy提供了分别对应这三种情况的函数
np.vstack((a,b)) # 竖着连接
np.hstack((a,b)) # 横着
np.dstack((a,b)) # 三维
# numpy内置函数非常多,不需要死记,懂得查资料
np.median(a) # 求中值
np.abs(a) # 绝对值
np.cumsum() # 累加和,每个元素表示原数组前几个元素之和