Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有其他方法可以创建空数组,然后用Python填充它?_Python_Arrays_Numpy_Numpy Ndarray - Fatal编程技术网

是否有其他方法可以创建空数组,然后用Python填充它?

是否有其他方法可以创建空数组,然后用Python填充它?,python,arrays,numpy,numpy-ndarray,Python,Arrays,Numpy,Numpy Ndarray,我是Python新手,但我在Java和C方面有相当丰富的经验,我尝试创建一个特定大小的数组,然后用随机数填充它,但没有关于数组的Python教程提到这样做的方法(如果我明确搜索希望得到结果,这不是问题)所以我想知道这在Python中是否被认为是一种不好的做法,并且有其他方法来实现我想要的。谢谢。使用随机或numpy [1]中的:导入随机 在[2]中:[random.random()表示范围(10)中的i] 出[2]: [0.8233249954348517, 0.6215056571076538

我是Python新手,但我在Java和C方面有相当丰富的经验,我尝试创建一个特定大小的数组,然后用随机数填充它,但没有关于数组的Python教程提到这样做的方法(如果我明确搜索希望得到结果,这不是问题)所以我想知道这在Python中是否被认为是一种不好的做法,并且有其他方法来实现我想要的。谢谢。

使用随机或numpy

[1]中的
:导入随机
在[2]中:[random.random()表示范围(10)中的i]
出[2]:
[0.8233249954348517,
0.6215056571076538,
0.6273288221606772,
0.12055176228045617,
0.22782244162965615,
0.9016145766629989,
0.04615407289582629,
0.8870216740449745,
0.5622680783939463,
0.9288600326401598]
在[3]中:导入numpy
[4]中:numpy.random.rand(5)
Out[4]:数组([0.9288893,0.66600315,0.82989425,0.15717061,0.3344802])
在[5]中:列表(numpy.random.rand(5))
出[5]:
[0.46571036413626277,
0.8268980751228664,
0.9216520894106733,
0.26706936577849916,
0.47348417257319697]

您可以从random中使用choices函数,并给它一个
k
参数(要选择的值的数量):


通常,numpy是处理阵列的内存效率最高、速度最快的方法,尤其是在处理更复杂的事情时

您可以生成n个随机数

您还可以使用列表理解在一个漂亮的Python行中本地创建列表、集合、dict等

这是经常要做的事情,你会经常使用这些

对于您的示例,我们还可以使用Python的内置随机包

import random

# range here is a generator for values 0 to n-1
# array is created by a list comprehension
array = [random.random() for i in range(n)]

关于@icejoywoo post的评论还是新的^

在大多数情况下,列表基本上都是数组

列表理解是用很多东西填充数组的最简单方法

[ returnVal for i in range(10)]
任何for循环或迭代器都可以工作 返回值本身可以是一个函数

x= [None for i in range(10)]
[None,None..None]

x= [x**2 for i in range(10)]
[0,1,4..81]

y = lambda a: int((a**.5)*100)
x= [y(i) for i in range(10)]
[0, 100, 141, 173, 200, 223, 244, 264, 282, 300]

Python具有动态内存分配。只要在需要时创建并使用。似乎是相关的,因为你用numpy标记了它。我用numpy标记它的原因是因为我读到python中默认没有数组,导入numpy使数组可用@chelmertz@Alex谢谢python
list
是一种类似于数组的通用结构,可以容纳多种对象-数字、字符串、,其他清单
numpy
数组更加专业化,最适合存放多维数字。
[ returnVal for i in range(10)]
x= [None for i in range(10)]
[None,None..None]

x= [x**2 for i in range(10)]
[0,1,4..81]

y = lambda a: int((a**.5)*100)
x= [y(i) for i in range(10)]
[0, 100, 141, 173, 200, 223, 244, 264, 282, 300]