Python(numpy、torch)中 函数简单解释

usage:Ctrl + F 搜索想找的函数

1、python使用函数作为参数

 

2、Python中的size、shape、len和count

 

3、

torch.randn(2, 3) :randn产生随机(按照标准正太分布)数;为2行3列的tensor。

torch.rand(2,3):rand产生0~1均匀分布的随机数(输入是shape)。

np.random.rand(a,b,c,...):效果和torch.rand类似,有多少输入量,就是产生多少维随机数

np.random.randn(a,b,c,...):效果同torch.randn

np.random.seed(m):怎么理解np.random.seed()?

a.type(): 指出a的数据类型;返回的是string

type(a):同上(用的少)

isinstance(a, torch.FloatTensor):参数检验(合法化检验)

 

4、data.cuda():返回一个gpu上的引用

 

5、注意:torch.tensor中,需要用b.size(),功能和b.shape同;

      而numpy中用a.size,且功能和a.shape不同--->torch中是函数,numpy中是属性

注:下图中,b为torch中张量;a为numpy中张量

b.dim():显示torch张量维度

 

6、torch中的张量:

torch.tensor()生成指定标量(接受真实数据内容);

torch.FloatTensor()生成随机数(接受数据的shape);

torch.FloatTensor()、torch.Tensor()(注意是大写的Tensor)接受 ‘[ ]’形式时,和torch.tensor()同,为避免混淆,这种用法少用

 

注意:np中np.ones()用法和torch.FloatTensor()同,不过shape要以向量形式( []、()形式)输入(一维除外);输出全为1

           np.zeros()用法同

torch.ones()输入也是shape,但格式更随意

 

7、torch中size和shape的索引:size(1)、shape[1]

 

8、list():可将torch.Size类型转换为list

 

9、a.numel():类似numpy中的size,返回所含元素个数(number of element)

 

10、a.reshape():numpy函数,接受一个  新的shape形式,如(2,3),表示生成矩阵shape为2维,第一维2元素,第二位3元素;新的shape 可以且最多只可指定一个维度为-1(-1的维度可以自动计算元素个数)

 

11、yield关键字:(后补充)Python yield 使用浅析

 

12、range(a, b[, c]):a,b,c全为int类型(20190806官网),返回range类型(相当于迭代器,注意返回的不是列表list),取 [a, b)中整数 ,步长(每次取数间隔)为c;

若给定 一个参数,则输入是b;两个参数,则输入代表a、b;

a、c可无,无a时(只有一个变量b时),a默认为0,无c时,默认是1(注意是正数1

 

利用range的迭代器属性,根据条件快速生成满足条件的列表

 

np.arange(a, b, c):numpy.ndarray类型;c步长可以为小数;Python 基础——range() 与 np.arange()

 

13、set(a):接受一个迭代器对象a,返回一个删除a中重复元素的set

set(a).intersection(b):看a和b是否有交集(下图list将结果列表化)

 

14、numpy.random.shuffle(x):将x 随机打乱顺序无返回值;详见下链接

numpy.random.shuffle()与numpy.random.permutation()的区别

 

15、python中数组(numpy.array)的基本操作

 

16、需要先  import os    ;os.path.join(a, b, c, ...),其中a、b、c是字符串,详见os.path.join()

 

17、time.time();  返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

   time.localtime(time.time());    【注意】下图例子是python 2.x版本,python 3中print需要写成print(....)

 

18、assert:断言,用于指明需要的条件,如不满足,可以有字符提示

python assert的作用

 

19、dict():创建字典   创建字典的 5 种方式

 

20、np.dot(w.t, X):“.t”是转置操作;“dot”是矩阵乘法

 

21、np.sum(a[, axis = m]):对a的第m维求和(-1对应最后一维,-2对应倒数第二维)

【注】list类型可以执行np.array类型相同的操作(函数操作20、 21均可)

python numpy函数的使用

import numpy as np
a = [[[1, 2, 3,], [4, 5, 6]], [[1.1, 2.1, 3.1], [4.1, 5.1, 6.1]]]
print( np.sum(a, axis=-1) )
print( np.sum(a, axis=0) )
print( np.sum(a, axis=1) )
print( np.sum(a, axis=2) )
 
 
## output
#axis = -1  ## channel
[[ 6.  15. ]
 [ 6.3 15.3]]
 
# axis = 0  ## height
[[ 2.1  4.1  6.1]
 [ 8.1 10.1 12.1]]
 
# axis = 1   ## width
[[5.  7.  9. ]
 [5.2 7.2 9.2]]
 
# axis = 2  ## channel
[[ 6.  15. ]
 [ 6.3 15.3]]

22、np.concatenate((a, b) [, axis = m] ) :在第m为连接a、b;m可为负数(同21);默认为第一个维度(0维)

【】连接哪个维度,那个维度的元素个数就变化

23、python中的切片

由上可以看出,只需要按照 “[ ]” 的取值范围从左往右依次读就可以了,[ : ]就是取全部,[m]就是读取上一部分取值后的第m(从0开始)个元素。

【add】a[ ][ ]与a[ , ]的区别如下,

a[ , ]是在原数组上进行取值,不可超出维度;

a[ ][ ]本质上是先计算a[ ](设其值为b),在其基础上再计算[ ](即计算b[ ])

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("a的shape:", a.shape)    # (2, 2, 2)

b = a[:, :, :]

"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
"""
print(b)    

b = a[:, :, :, :]
print(b)    # IndexError: too many indices for array

c = a[:][:][:]
"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
"""
print(c)

"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
"""
c = a[:][:][:][:]

24、numpy.squeeze(a,axis = None):删除a中个数为1的维度,如(1,3,3,1,2)--->(3,3,2);多用于画图前使用

numpy的squeeze函数

25、

plt.imread(fname):根据图片路径(图片名),得到 <class 'numpy.ndarray'> 类型数组

plt.imshow(a):根据数组类型,展示图片

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值