Python数据分析 | (9)NumPy数组高级操作---变型、重塑、扁平、合并拆分以及重复

本篇博客所有示例使用Jupyter NoteBook演示。

Python数据分析系列笔记基于:利用Python进行数据分析(第2版)  

目录

1.数组转置和轴对换

2.数组重塑

3.数组扁平化

4.数组的合并和拆分

5.元素的重复操作:tile/repeat


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的视图

数据分析数据科学及AI算法是当前最热门的职业。这些职业有着共同的特点:面向数字的,针对编程的以及采取分析手段的。 这些当代热点特性使得在就业市场上对以上职位需求激增也就不足为奇了。但是,市场上提供这方面的大型综合的培训课程是有限,如果说有,大多是知识范围狭窄且非综合性的,而且大多培训都缺乏方法论与实务结合。一般的情况是讲师讲述某种语言的一堆代码,学生听完后甚至连使用方法及代码的前提都不清楚,更别提实际应用场景了。这里,掌握一门数据分析软件本身没错,但仅通过单一的编程培训很难获得聘用为数据分析师或数据科学家所需的技能。那我的解决方案是什么呢?首先,我把所有数据分析中的典型问题都归类总结出来,再结合相应的实际问题,数据以及案例,同时采用世界上最流行的两种数据分析软件:PYTHON SAS去解决这些问题,并将这些解决方法传授给学生。学生在完成培训后更重要的收获是知道每一问题从产生直至解决的前因后果应用场景,这是因为我在每一课程章节最前都会交代方法论,知识要点及应用场合。SASPYTHON可以一起学吗?当然可以。因为我就是这样做到的。具体步骤是,我在课程当中安排了一系列主题,然后使用两种编程语言解决同样的问题。我总结出这样做的好处是边学习边比较,最后在不知不觉当中掌握了两门语言的精华数据分析的通用方法或模式。过程虽有点长,但十分有趣。最后,为了巩固已学的知识技能,我还专门安排了针对PYTHON SAS的中小型项目及详细代码讲解。另外,课程当中使用的全部编程代码及数据文件都将免费地提供给注册的学生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值