我有一个4维数组,即data.shape=(20,30,33,288)。我正在使用找到最接近n的数组的索引index=abs(data-n).argmin(axis=1),soindex.shape=(20,33,288)withtheindicesvarying.我想将data[index]="values"与values.shape=(20,33,288)一起使用,但是data[index]返回错误“index(8)outofrange(0或此操作需要相对较长的时间来计算并返回具有形状的矩阵这似乎没有意义。如何返回正确值的数组?即,data[index]="values"withv
我刚刚注意到TensorFlow中出现了意外(至少对我而言)的行为。我以为tf.argmax(-argmin)在Tensor的行列上从外到内运行,但显然不是?!例子:importnumpyasnpimporttensorflowastfsess=tf.InteractiveSession()arr=np.array([[31,23,4,24,27,34],[18,3,25,0,6,35],[28,14,33,22,20,8],[13,30,21,19,7,9],[16,1,26,32,2,29],[17,12,5,11,10,15]])#arrhasrank2andshape(6,6)
我刚刚注意到TensorFlow中出现了意外(至少对我而言)的行为。我以为tf.argmax(-argmin)在Tensor的行列上从外到内运行,但显然不是?!例子:importnumpyasnpimporttensorflowastfsess=tf.InteractiveSession()arr=np.array([[31,23,4,24,27,34],[18,3,25,0,6,35],[28,14,33,22,20,8],[13,30,21,19,7,9],[16,1,26,32,2,29],[17,12,5,11,10,15]])#arrhasrank2andshape(6,6)
目录一、前言二、函数讲解1、argmax()函数2、参数1)a2)axis(可选)3)out(可选)3、返回值4、注意一、前言在数组里查找相同元素,返回索引的时候用到了该函数二、函数讲解1、argmax()函数老样子,我们先看看该函数下包含了哪些参数与返回值英文版:中文版:argmax(a,axis=None,out=None)2、参数1)a我们使用的(输入)数组2)axis(可选)沿轴使用(可选填,默认为数组的展平成一维形式,即0,1,2,3,4…等)如果是沿着0轴,则返回每一列最大值的索引如果是沿着1轴,则返回每一行最大值的索引指定可以直接选择0轴,1轴或2轴等(如果有的话)上个代码小例子
目录作用一维axis的值大于0二维axis=0axis=1三维axis=0axis=1axis=2作用argmax()返回的就是最大数的索引argmax()有一个参数axis,可以指定函数返回不同维的最大值。一维importnumpyasnpa=np.array([1,2,3,4,5])print(np.argmax(a,axis=0))结果是4。而在python中一维向量只有一个方向,所以一维情况下axis只能等于0,函数只会返回一个值。如果对它进行转置,它就会变成一个二维矩阵:a=np.array([1,3,5,7])print(a)print(a.shape)b=a.reshape((4
我有一个N维矩阵,其中包含具有N个参数的函数的值。每个参数都有离散数量的值。我需要最大化除一个参数之外的所有参数的函数,从而生成大小等于非最大化参数的值数的一维向量。我还需要保存其他参数采用的值。为此,我想在不同的轴上迭代应用numpy.max以降低矩阵的维数以找到我需要的内容。最终向量将仅取决于我遗漏的参数。但是,我无法找到最终元素的原始索引(其中包含有关其他参数所取值的信息)。我想以与numpy.max相同的方式使用numpy.argmax但我无法取回原始索引。我正在尝试的一个例子是:x=[[[1,2],[0,1]],[[3,4],[6,7]]]args=np.argmax(x,0
我有一个从大型二维数组返回argmax的函数getMax=np.argmax(dist,axis=1)但是我想获得下一个最大值,有没有办法从原始数组中删除getMax值,然后再次执行argmax? 最佳答案 使用命令np.argsort(a,axis=-1,kind='quicksort',order=None),但要选择适当的参数(如下)。这里是documentation.注意“它返回一个索引数组,这些索引的形状与沿给定轴的索引数据按排序顺序排列。”默认顺序是从小到大。所以用-dist排序(为了快速编码)。注意:执行-dist会导
我为我的神经网络编写了自定义损失函数,但它无法计算任何梯度。我认为这是因为我需要最高值的索引,因此使用argmax来获取该索引。由于argmax不可微分,我可以绕过这个问题,但我不知道这怎么可能。有人能帮忙吗? 最佳答案 正如aidan所建议的,它只是一个softargmax被beta拉到了极限。我们可以使用tf.nn.softmax来解决数值问题:defsoftargmax(x,beta=1e10):x=tf.convert_to_tensor(x)x_range=tf.range(x.shape.as_list()[-1],dt
在numpy.argmax函数,多个最大元素之间的平局是为了返回第一个元素。是否有随机抽签的功能,以便所有最大数字都有相同的机会被选中?以下是直接来自numpy.argmax文档的示例。>>>b=np.arange(6)>>>b[1]=5>>>barray([0,5,2,3,4,5])>>>np.argmax(b)#Onlythefirstoccurrenceisreturned.1我正在寻找方法使列表中的第1个和第5个元素以相等的概率返回。谢谢! 最佳答案 使用np.random.choice-np.random.choice(n
有没有办法一次获得max和argmax?importnumpyasnpa=[0,0,1,0]maximum=max(a)index=np.argmax(a)有没有最快的方法,例如:[maximum,index]=function(a) 最佳答案 也许这样的东西更快...index=np.argmax(a)max=a[index] 关于python-numpy最大参数。如何计算max和argmax?,我们在StackOverflow上找到一个类似的问题: htt