现在的位置: 首页 > web前端 > 正文

Numpy数组中None的作用

2020年07月17日 web前端 ⁄ 共 956字 ⁄ 字号 评论关闭

  就是你调用参数的时候没有None,你调用函数必须给他传参,circle(这必须写参数传进去才能成功调用这个参数。


  numpy-python[:,2][:,None]是什么意思


  解决方案


  python是支持多维切片语法的,只是python自身没有用到。平时,就看到numpy里用了。


  [:,2]看切片原理:


  [:,None]


  None表示该维不进行切片,而是将该维整体作为数组元素处理。


  所以,[:,None]的效果就是将二维数组按每行分割,最后形成一个三维数组


  Numpy数组中None的作用


  >>>importnumpyasnp


  >a=[1,2,3,4]


  >>>a=np.array(a)


  >>>a


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


  >>>b=a[:,None]


  >>>b


  array([[1],


  [2],


  [3],


  [4]])


  >>>c=a[:,None,None]


  >>>c


  array([[[1]],


  [[2]],


  [[3]],


  [[4]]])


  >>>a=np.ones((2,3))


  >>>a


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


  [1.,1.,1.]])


  >>>b=a[:,None,:]


  >>>b


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


  [[1.,1.,1.]]])


  >>>b=a[None,:,:]


  >>>b


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


  [1.,1.,1.]]])


  在pytorch中:


  >>>importtorchast


  >>>a=t.from_numpy(a)


  >>>a


  tensor([[1.,1.,1.],


  [1.,1.,1.]],dtype=torch.float64)


  >>>b=a[:,None,:]


  >>>b


  tensor([[[1.,1.,1.]],


  [[1.,1.,1.]]],dtype=torch.float64)


  >>>


  >>>


  可以看出,在数组索引中,加入None就相当于在对应维度加一维


  但是这种方法只是在ndarray和tensor类型使用,python的list并不适用(会报错)


  总之,none给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.