微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决是否有其他方法可以创建一个空数组然后用 Python 填充它?

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

解决方法

使用随机或numpy

In [1]: import random

In [2]: [random.random() for i in range(10)]
Out[2]:
[0.8233249954348517,0.6215056571076538,0.6273288221606772,0.12055176228045617,0.22782244162965615,0.9016145766629989,0.04615407289582629,0.8870216740449745,0.5622680783939463,0.9288600326401598]

In [3]: import numpy

In [4]: numpy.random.rand(5)
Out[4]: array([0.9288893,0.66600315,0.82989425,0.15717061,0.33444802])

In [5]: list(numpy.random.rand(5))
Out[5]:
[0.46571036413626277,0.8268980751228664,0.9216520894106733,0.26706936577849916,0.47348417257319697]
,

对@icejoywoo 帖子的评论仍然是新手^

list 基本上是用于大多数用途的数组。

列表推导式是用很多东西填充数组的最简单方法

[ 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]
,

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

>>> from random import choices
>>> choices(range(10),k=5)
[1,8,6,9,8]
,

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

可以生成n个随机数like so

import numpy as np

# how many random numbers you want 
n = 10

# create your array
array = np.random.rand(n)

您还可以使用列表理解在一个漂亮的 Pythonic 行中本地创建列表、集合、字典等。 See section 5.1.3 of the docs

这通常是最常用的方法,您会经常使用它们。

对于您的示例,我们也可以使用 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)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。