gpt4 book ai didi

python - 在 Python 中使用随机函数时每次都得到零

转载 作者:行者123 更新时间:2023-12-03 19:41:03 25 4
gpt4 key购买 nike

我正在这样做,如下所示。最初我有一个二维数组 A = [(1,2,3) , (4,5,6)]。现在通过函数 func ,我想用随机数替换数组 A 的两行中的所有元素。我正在尝试,但在执行该函数后,我将每个元素都设为 0。有人可以帮忙吗。请记住,我必须通过使用此函数 func 并执行这些切片操作来解决此问题。

import numpy as np
import random
A=np.array([(1,2,3),(4,5,6)])
def func(B):
B[0:3]= np.random.random((1,3))
return(B)

for ic in range(0,2):
A[ic,:]= func(A[ic,:])

print(A)
Output
Everytime I am getting zeros. There should be random numbers in both the rows of array A . I think the random number generator is generating zeros every time. Can somebody help ??
[[0 0 0]
[0 0 0]]

最佳答案

您构建数组的方式 A是这样的,它总是有整数 dtype .您可以通过 print(A.dtype) 查询.这意味着 0-1 之间的值被强制转换为零,这是一个问题,因为 np.random.rand只返回 0 到 1 之间的值。您可以通过几种方式解决此问题:

  • 使用浮点数构建A=np.array([(1.,2.,3.),(4.,5.,6.)])
  • 显式设置数据类型A=np.array([(1,2,3),(4,5,6)], dtype=np.float)
  • 强制转换为 float 类型A=np.array([(1,2,3),(4,5,6)]).astype(np.float)
  • 关于python - 在 Python 中使用随机函数时每次都得到零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64466653/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com