我有一个大数组和一个将索引列表返回到数组的函数,即
import numpy
n = 500
a = numpy.random.rand(n)
def get_idx(k):
# More complicated in reality
return range(n) if k > 6 else range(k)
data = a[get_idx(29)]
data = a[get_idx(30)]
# ...
典型的情况是范围是整个数组range(n)
。不幸的是,a[range(n)]
使用n
while进行缩放a[:]
当然是固定时间的。可惜一个人不能:
从那里回来get_idx
。
我可以从中返回什么get_idx
用作整个数组的索引?
NumPy有一个np.s_[]
可用于构造slice
和Ellipsis
对象的助手:
def get_idx(k):
return np.s_[:] if k > 6 else np.s_[:k]
# or even np.s_[:None if k > 6 else k]
一般而言,a[np.s_[ <stuff> ]]
与完全相同a[ <stuff> ]
。
C++ 数组 C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。 如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 现在,让我们来看下面的函数,它会生成 10 个随机数,并
问题内容: 从如下所示的数组中,如何获取数组中最大值的索引。对于下面的数组,期望的结果将为‘11’。 问题答案: 我的解决方案是: 注意: 这样,您可以检索与给定 最大值 相关的 每个键 。 __ 如果您只对 其中一个键 感兴趣,只需使用 $ maxs [0]
我想用Javascript实现合并排序作为一种学习经验。我有mergeSort(unsortedArray)函数,它接受一个未经排序的数组,并使用合并排序策略对其进行排序。mergeSort()调用merge(leftArray,rightArray),后者将两个数组合并在一起,得到一个数组。 我认为问题出在merge()函数上。在数组[8,8,7,5,4,6,3,2,1,5,9,8,7,6,5,
我正在尝试用Java编写一个函数,它接受两个数组,并对数组1中的索引值求和,其中的值与数组2匹配,例如。 数组1={15、6、99、12、35} 数组2={1,12,7,99,35} 匹配“Array1[索引]”值=2(99)、3(12)、4(35) 因此,返回9(2 3 4) 我建议使用以下方法进行此操作: 但是如果Array2中有一个不匹配的值,我也想返回-1。所以在上面的情况下,1和7不在A
受到这个问题的启发。我创建了这个函数: 不幸的是,它不起作用。为什么?是否可以用C返回一个指向二维数组的指针,并使用上面的方法保留[][]符号?如果不是,原因何在?我在这里遗漏了什么? 我知道通过创建外部数组,通过引用将其传递给函数,可以解决这个问题。但是它有点难看,我想把所有的东西都封装在一个函数中。
我是一名 Java 初学者,我一直在尝试编写一种方法来列出数组中某个 int 的所有索引。到目前为止,我所做的是将该 int 的值存储在另一个数组中的相应索引处,但我能做的最好的事情就是将所有其他不等于原始 int 的索引的值设置为 -1。 我想我需要在数组中存储值I,并删除所有的-1,但是我不知道怎么做。顺便说一下,这些值是-1,因为这个程序中所有的数组都包含0-100之间的整数。如果数组中的整