python与财务工作总结_Python总结

python: numpy--函数 shape用法

shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。

举例说明:

建立一个3×3的单位矩阵e, e.shape为(3,3),表示3行3列,第一维的长度为3,第二维的长度也为3

>>> e = eye(3)>>>e

array([[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]])>>>e.shape

(3, 3)

建立一个一维矩阵b, b.shape 为矩阵的长度

>>> b =array([1,2,3,4])>>>b.shape

(4,)

#可以简写>>> shape([1,2,3,4])

(4,)

建立一个4×2的矩阵c, c.shape[1] 为第一维的长度,c.shape[0] 为第二维的长度。

>>> c = array([[1,1],[1,2],[1,3],[1,4]])>>>c.shape

(4, 2)>>> c.shape[0]4

>>> c.shape[1]2

一个单独的数值,返回值为空

>>> shape(3)

()

Python的Zip函数

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:

1.示例1:

x = [1, 2, 3]

y= [4, 5, 6]

z= [7, 8, 9]

xyz=zip(x, y, z)

print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

2.示例2:

x = [1, 2, 3]

y= [4, 5, 6, 7]

xy=zip(x, y)

print xy

运行的结果是:

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

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

x = [1, 2, 3]

x=zip(x)

print x

运行的结果是:

[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

x =zip()

print x

运行的结果是:

[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

x = [1, 2, 3]

y= [4, 5, 6]

z= [7, 8, 9]

xyz=zip(x, y, z)

u= zip(*xyz)

print u

运行的结果是:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

6.示例6:

x = [1, 2, 3]

r= zip(* [x] * 3)

print r

运行的结果是:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

Python np.where()函数

numpy.where()函数是三元表达式x if condition else y的矢量化版本。假设我们有一个布尔数组和两个值数组:

x = np.array([1.1, 1.2, 1.3, 1.4, 1.5])

y= np.array([2.1, 2.2, 2.3, 2.4, 2.5])

condition= np.array([True, False, True, True, False])

假设我们想要根据condition中的值选取x和y的值:当condition中的值为True时,选取x的值,否则从y中选取。

result = np.where(condition, x, y)

打印的结果为:【1.1, 2.2, 1.3, 1.4, 2.5】

Python np.meshgrid()函数

meshgrid函数通常在数据的矢量化上使用,但是使用的方法我暂时还不是很明确。而meshgrid的作用适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对。接下来通过简单的shell交互来演示一下这个功能的使用,并做一下小结。

交互显示:

>>> X, Y = np.meshgrid([1,2,3], [4,5,6,7])>>>X

array([[1, 2, 3],

[1, 2, 3],

[1, 2, 3],

[1, 2, 3]])>>>Y

array([[4, 4, 4],

[5, 5, 5],

[6, 6, 6],

[7, 7, 7]])

由上面的交互可以看出,meshgrid的作用是根据传入的两个一维数组参数生成两个数组元素的列表。如果第一个参数是xarray,维度是xdimesion,第二个参数是yarray,维度是ydimesion。那么生成的第一个二维数组是以xarray为行,ydimesion行的向量;而第二个二维数组是以yarray的转置为列,xdimesion列的向量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值