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