Python学习手册(二)numpy常用函数

Python学习手册:

这个系列的博文是从北大tensorflow学习笔记里截出来的专门学python高级用法的日志,有在学的零基础可以看,想提高python的也可以
也欢迎大家去看tf系列的代码,我的博文里会更这个系列

1.python语法:列表推导式

2.numpy 一些函数

3.matplotlib 一些函数

[4.matplotlib 图例(legend)]
()


继续阅读代码

1.python推导式

    Y_c = [['red' if y else 'blue'] for y in Y_]

将真值放if 前面,判断条件放中间(一般判断条件都会放if后面),(for后面是个列表生成器,列表生成式和推导式理解见:python高级用法)

写法有点反直观,但真的很简洁


numpy常用函数

1. x[:,0]

x[:,0]是numpy中数组的一种写法,表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据,直观来说,X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据。

mport numpy as np  
  
X = np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]])  
print X[:,0]  

结果
在这里插入图片描述

2. np.reshape:

X = np.vstack(X).reshape(-1,2)

这是一个numpy的使用,

reshape函数
是numpy中一个很常用的函数,作用是在不改变矩阵的数值的前提下修改矩阵的形状。
1.简单使用
**简单使用**
2.使用缺省值-1

缺省值-1代表我不知道要给行(或者列)设置为几,reshape函数会根据原矩阵的形状自动调整。
在这里插入图片描述


3. np.vstack:

按垂直方向(行顺序)堆叠数组构成一个新的数组。
(我觉得这个跟np.c_ 第二篇讲的是一个东西。。。。,)

(除开第一维外,被堆叠的矩阵各维度要一致。 )

例子

import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.vstack((arr1, arr2))

输出为

array([[1, 2, 3],
       [4, 5, 6]])

另外除了vstack,还有一个hstack

np.hstack:按水平方向(列顺序)堆叠数组构成一个新的数组

X = np.vstack(X).reshape(-1,2)
#好了回到这个式子,意思是用垂直堆叠,行缺省,列为2

4. np.squeeze

从数组的形状中删除单维度条目,即把shape中为1的维度去掉

>>> a = e.reshape(1,1,10)
>>> a
array([[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]])
print(x1)  # [1,1,10]
>>> np.squeeze(a)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(x1.shape)  # ( , ,10)

5. np._c

np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()。
np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()。

import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.c_[a,b]

print(np.r_[a,b])
print(c)
print(np.c_[c,a])

结果展示

[1 2 3 4 5 6]

[[1 4]
 [2 5]
 [3 6]]

[[1 4 1]
 [2 5 2]
 [3 6 3]]

6. np.mgrid

grid是网格的意思
np.mgrid[start: end :step]

start:开始坐标

stop:结束坐标(不包括)

step:步长

举例子

res = np.mgrid[-3:3:.1,-3:3:.1]

生成从-3到3的二维坐标

第一部分是y轴的范围

第二部分是x轴的范围

返回数组的res[0]是y轴,res[1]是x轴


猜你喜欢

转载自blog.csdn.net/qq_35307005/article/details/87465932