不知道是否有人可以帮助我解决我的一个小问题的代码。
list1 = [1,2,4]
dz = 0.5
k = max(list1)/dz
print('k =',k)
list1_diff = np.insert(np.diff(list1),0,1)
for item in list1_diff:
#Number of times to repeat number
repeats = item/dz
vec = [np.random.normal(0,1)]*int(repeats)
print(vec)这就产生了
[-0.7014481088047718, -0.7014481088047718]
[3.1264015795601274, 3.1264015795601274]
[0.44017976879654314, 0.44017976879654314, 0.44017976879654314, 0.44017976879654314]这是在做正确的事情,但我希望循环的输出是这三个列表作为一个列表。所以它应该是
[-0.7014481088047718, -0.7014481088047718, 3.1264015795601274, 3.1264015795601274, 0.44017976879654314, 0.44017976879654314, 0.44017976879654314, 0.44017976879654314]发布于 2020-10-06 22:05:33
你不是笨蛋。如果我没记错的话,您希望根据您的公式有一个包含重复随机数的列表。您只需对代码稍作修改,如下所示:
list1 = [1,2,4]
dz = 0.5
k = max(list1)/dz
print('k =',k)
list1_diff = np.insert(np.diff(list1),0,1)
# create your empty result list, where you add the random numbers in the loop
vec= list()
for item in list1_diff:
# Number of times to repeat number
repeats = item/dz
# add the new random number with it's repeats to the vec list
# using extend
vec.extend([np.random.normal(0,1)]*int(repeats))
# print the result outside the loop, after it has been constructed
print(vec)发布于 2020-10-06 22:14:45
试试这个:
import numpy as np
list1 = [1,2,4]
dz = 0.5
k = max(list1)/dz
print('k =',k)
list1_diff = np.insert(np.diff(list1),0,1)
final_list=[]
for item in list1_diff:
#Number of times to repeat number
repeats = item/dz
vec = [np.random.normal(0,1)]*int(repeats)
final_list += vec
print(final_list)发布于 2020-10-06 22:05:45
这应该可以完成这项工作:
import numpy as np
list1 = [1,2,4]
dz = 0.5
k = max(list1)/dz
print(f'k = {k}')
lst = [[np.random.normal(0,1)]*int(item/dz) for item in np.insert(np.diff(list1),0,1)]
flatten = lambda l: [item for sublist in l for item in sublist]
print(flatten(lst))输出:
k = 8.0
[-1.1762058341816053, -1.1762058341816053, -1.0599923573472354, -1.0599923573472354, 0.6374252888036466, 0.6374252888036466, 0.6374252888036466, 0.6374252888036466]事情是这样的:
的
请注意,您也可以使用extend(),我本打算添加它的,但另一个答案抢先一步使用了
https://stackoverflow.com/questions/64227357
复制相似问题