我想做一个小数组

2024-04-25 21:11:53 发布

您现在位置:Python中文网/ 问答频道 /正文

正如标题所说,我想制作一个numpy数组

array=np.random.randint(2,size=(4,4))

第一个问题,现在我想让代码的大小可以改变。我该怎么办

top = input("Top(k):")

第二个问题,我希望像这样接收k值,并发送与这个值一样多的输出。 此时,我想打印从最弱到最强的前k行索引(最弱:数量较少)如何操作??(

像这样的例子

输入

[[1,0,0,0],
[1,1,1,1],
[1,0,0,0],
[1,0,0,0]]

顶部(k):2

输出

0,2

如果Top(k):4,则输出为

0,2,3,1


Tags: 代码numpy标题inputsize数量topnp
1条回答
网友
1楼 · 发布于 2024-04-25 21:11:53

Numpy使用静态数组(它是用C实现的),不能像使用python列表那样更改Numpy数组的大小。但是,您可以使用numpy.ndarray构造函数从python列表中创建numpy数组:array = numpy.ndarray(my_python_array)

对于第二个答案,您可以使用ndarray的函数sum(),并如下使用:

histogram = []
for i in range(len(array_2D)):
    # Store the row indexes as well as number of ones
    histogram.append((i, array2D[i].sum())) 

# Sort regarding the number of ones
histogram.sort(key=lambda e:e[1]) 
for index, val in histogram[:k]:
    print(index, end=" ")

这里array2D是从用户输入中获得的numpy数组。在执行此代码之前,应该解析用户输入以获取numpy数组

相关问题 更多 >