今天继续来学习numpy。
学习一件事情最重要的是持之以恒,我自己也知道这个博客系列应该不会有很多人观看和学习。
我自己觉得看视频相对于看书学的快一些。
但是无论哪一种学习形式,你必须要自己动手实践。
以后我尽量在代码里面进行讲解,大家直接看代码注释就可以。
talk is cheap,show me the code!!!!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : numpy2.py
import numpy as np
# numpy基本学习第二课。
# reshape()函数可以把一个一行的矩阵转变成为多行多列。
b=np.arange(12).reshape(3,4)
# b=[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print b
# 那么有没有一些函数可以把一个多行多列的函数转换成为一行的矩阵呢?
# 1.ravel()函数。
# ravel翻译过来。
# vt. 弄清;解开;使纠缠
# vi. 散开;缠结
# 使用方法如下:
print b.ravel()
# 输出如下:[ 0 1 2 3 4 5 6 7 8 9 10 11]
# 2.flatten()函数。
# flatten
# vt. 击败,摧毁;使……平坦
# vi. 变平;变单调
# 使用方法:
print b.flatten()
# 输出结果:[ 0 1 2 3 4 5 6 7 8 9 10 11]
# 两个方法的使用情况一样,有什么区别吗?
# 区别就是flatten()函数会请求分配内存来保存结果,而ravel()函数只是返回数组的一个视图(view)
# 怎么去理解呢?
#
b.flatten()[1]=100
print b
b.ravel()[1]=100
print b
# 输出结果为:
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# 输出结果为:
# [[ 0 100 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# 说明ravel()函数对b的改正成功,而flatten()函数不可以。
#其实实际上区别不大,使用的时候注意就好了。