我试着运行下面的代码,但是需要很长时间,有什么方法可以改进这个代码吗?我尝试了很多python函数,但所有函数看起来都是为仅使用1D数组而创建的,很抱歉,我对这方面的代码非常陌生:
返回包含唯一元素的数组的函数:
def get_unique_values(dataset):
uniqueimages=np.empty(dataset.shape, dtype=np.float32)
u=0
for i in range(dataset.shape[0]):
if (check_if_exists(dataset[i,:,:],uniqueimages)==0):
uniqueimages[u,:,:]=dataset[i,:,:]
u=u+1
return uniqueimages[0:u,:,:]
验证给定元素是否已在数组中的函数:
def check_if_exists( q,a ):
r=0
for i in range(a.shape[0]):
if np.array_equal(q,a[i,:,:]):
r=1
break
return r
然后我运行这个程序,给出一个3D数组作为输入(shape=2000,28,28):
vadu=get_unique_values(3Darray)
编辑:这个问题在另一个链接的问题中解决了,谢谢Divakar!你知道吗
如果要从numpy数组中获取唯一元素,可以使用numpy
unique
函数。你知道吗相关问题 更多 >
编程相关推荐