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

Python学习手册:


1.python语法:列表推导式

2.numpy 一些函数

3.matplotlib 一些函数

4.matplotlib 高阶函数

5.线程/进程 函数

6.Cython的使用

7.LMDB的读取


1.python推导式

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

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

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


numpy常用函数

1. x[:,0]

这部分的使用和Python切片有关,:
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。

 格式:【start:end:step】

 start:起始索引,从0开始,-1表示结束

 end:结束索引

 step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值

注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引

几种常见的省略方式:

  • b1=a[:]
  • 省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表
    print(b1)
    结果:[1, 2, 3, 4, 5, 6]
  • b=a[0: -1:1]
  • 从位置0开始到 结束位置结束,每次增加1,截取。不包含结束索引位置
    print(b)
    结果:[1, 2, 3, 4, 5]
  • c1=a[:3]
  • 省略起始位置的索引,以及步长。默认起始位置从头开始,默认步长为1,结束位置索引为3
    print(c1)
    结果:[1, 2, 3]
  • c=a[0:5:3] #从第一个位置到第6个位置,每3个取一个值
    print( c)
    结果:[1, 4]

x[:,0]是由于二维数组和切片组合的缘故,出现的一种常见的写法:表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第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轴


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值