Cupy与Numpy的数据类型互转

用cupy和numpy直接创建的数组/矩阵,类型是不一样的!无法相互之间进行运算。

用type查看二者的数据类型:

  • cupy的数据类型:cupy.core.core.ndarray
  • numpy的数据类型:numpy.ndarray

其实,如果只需要进行大量数组/矩阵间计算,然后将结果存储到某个"容器"之中,以cupy目前实现的函数功能来看,只用cupy来完成肯定是够的,完全可以一点没有numpy的影子。

但是,很多的"第三方包是不认识cupy的数据类型"的!本人就发现"matplotlib"就不识别cupy的数据类型!因此,如果除"纯计算"外还有别的需求,需要将cupy数据先转为numpy数据(numpy是转不了cupy的!)

cupy转numpy的函数:cupy.asnumpy()

import cupy as cp
import numpy as np

x = cp.ones( (1024,512,4,4) )*1024.
x1 = cp.asnumpy(x)  # 直接cupy数据类型转numpy

print( type(x) )
print( type(x1) )

结果:



有了这么简单的数据互转函数,只要计算量大,可以用cupy完全替换numpy!
直到需要使用其他第三方包的时候,再把cupy数据类型转回到numpy即可。

你可能感兴趣的:(Cupy与Numpy的数据类型互转)