引言
NumPy是Python的一个扩展库,负责数组和矩阵运行。相较于传统Python,NumPy运行效率高,速度快,是利用Python处理数据必不可少的工具。
这个NumPy快速入门系列分为四篇,包含了NumPy大部分基础知识,每篇阅读时间不长,但内容含量高。大家最好亲自码一遍代码,这样可以更有收获。
前面的课程:
Python进阶之NumPy快速入门(一)
Python进阶之NumPy快速入门(二)
概要
1、掌握NumPy中的数组操作,轻松改变数组形状;
2、掌握NumPy中的字符串,轻松应对文件处理;
3、掌握Python中的统计函数,轻松进行统计分析。
![5329227432b3a823a9b2af2e25a2828e.png](https://i-blog.csdnimg.cn/blog_migrate/9da14725e81d91194ee394583d98d7d0.jpeg)
第七节.数组操作
我们将数组操作分成以下几种类型,然后分别介绍
- 数组变形
- 数组翻转
- 数组连接
- 数组分割
数组变形
可以实现数组变形的函数有好几个:
- reshape,最常见的也是最主要的数组变形函数。可以将数组从一个形状转变成另外一个不同的形状。
- flatten,可以将高维数组展开成一维。先建好一个数组A,然后输出A.flatten()就可以完成降维。当然,我们可以选择展开式的秩序order。如果order='F',就是按列展开;如果order='C',就是按行展开。
- ravel,它和flatten功能其实差不多,可以将高维数组展开成一维。而且默认的展开顺序也是order='C',即按行展开。如果选择order='F'就是按列展开。
代码:
import numpy as np
A = np.arange(0,12)
B = A.reshape(2,6)
C = B.flatten(order='F')
D = B.ravel()
print (A, '', B, '', C, '', D)
讲解:
原始数组A是一个从0到11的一维数组;B是通过reshape函数改造成2*6的二维数组;C和D分别从B展开降到一维。其中C是按列顺序降维,而D是按照行顺序。
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
[ 0 6 1 7 2 8 3 9 4 10 5 11]
[ 0 1 2 3 4 5 6 7 8 9 10 11]
数组翻转
从数学角度而言,二维数组就是矩