本篇博客所有示例使用Jupyter NoteBook演示。
Python数据分析系列笔记基于:利用Python进行数据分析(第2版)
目录
1.数组转置和轴对换
转置是重塑的一种特殊形式,返回的是源数据的视图(不会进行任何复制操作).
- 二维数组
2维数组转置不仅有transpose方法,还有一个特殊的T属性:
import numpy as np
arr = np.arange(15).reshape((3,5))
print(arr.T) #返回源数组arr的视图 arr没有任何改变 arr.T/arr.transpose()返回arr的视图
print(arr.transpose()) #如果赋值给一个新数组 对新数组进行修改 arr也会改变
print(arr)

进行矩阵运算时,经常要用到转置操作,比如利用np.dot计算矩阵内积时:
arr = np.random.randn(6,3)
print(arr)
print(np.dot(arr.T,arr)) #(3,6) (6,3)->(3,3)

- 高维数组
对于高维数组,transpose函数需要得到一个由轴编号组成的元组才能对轴进行转置:
arr = np.arange(16).reshape((2,2,4))
print(arr)
print("---------------")
print(arr.transpose(1,0,2))

这里0轴和1轴互换,2轴不变。
2维数组简单的转置可以使用.T,他其实就是进行轴对换而已。ndarray还有一个swapaxes函数,需要接受一对轴编号:
print(arr)
print("--------------")
print(arr.swapaxes(1,2))

swapaxes函数和transpose,.T一样,也是返回源数据的视图(不会进行任何复制操作)
2.数组重塑
多数情况下,可以无需复制任何数据,就可以将数组从一个形状转换为另一个形状。只需要向数组的函数reshape传入一个表示新形状的元组即可。
将一个一维数组重新排列成一个矩阵(2维数组):
arr = np.arange(8)
print(arr)
print(arr.reshape((4,2))) #返回arr的视图


1131

被折叠的 条评论
为什么被折叠?



