亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中使用隨機函數時每次都得到零

在Python中使用隨機函數時每次都得到零

海綿寶寶撒 2023-12-20 14:07:28
我正在這樣做,如下所示。最初我有一個二維數組 A = [(1,2,3) , (4,5,6)]?,F在通過函數 func ,我想用隨機數替換數組 A 的兩行中的所有元素。我正在嘗試,但在執行函數后我得到的每個元素都為 0。有人可以幫忙嗎。請記住,我必須通過使用此函數 func 并執行這些切片操作來解決此問題。import numpy as npimport randomA=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)    OutputEverytime 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]]
查看完整描述

3 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

構造數組的方式A使其始終具有整數dtype。您可以使用 進行檢查print(A.dtype)。這意味著 0-1 之間的值將被強制轉換為 0,這是一個問題,因為np.random.rand僅返回 0 到 1 之間的值。您可以通過幾種方式解決此問題:

  1. 使用浮動體構建?A=np.array([(1.,2.,3.),(4.,5.,6.)])

  2. 顯式設置 dtype?A=np.array([(1,2,3),(4,5,6)], dtype=np.float)

  3. 轉換為浮點類型?A=np.array([(1,2,3),(4,5,6)]).astype(np.float)


查看完整回答
反對 回復 2023-12-20
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

問題是它A是一個整數數組,并且np.random.random出于實際目的生成小于一的浮點數。將這樣的數字轉換為整數總是會產生零。

您可以通過以下兩種方式之一進行修復:

  1. 創建A一個 dtype 數組float

    A。A = np.array([[1.0, 2, 3], [4, 5, 6]])
    b. A = np.array([[1, 2, 3], [4, 5, 6]], dtype=float)
    C。ETC...

  2. 生成隨機整數而不是浮點數,或者至少生成會轉換為非零整數的浮點數:

    A。B[:]= np.random.randint(256, size=B.shape)
    b. B[:]= np.random.random(B.shape) * 256 C。ETC...


查看完整回答
反對 回復 2023-12-20
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

您的代碼經過少量修改


import numpy as np

from random import random

A=np.array([(1,2,3),(4,5,6)])

def func(B):

    B[0:3]= np.random.choice((1,3))

    return(B)

                

for ic in range(0,2):

A[ic,:]= func(A[ic,:])


print(A)  

您可以使用 np.random.choice 代替 np.random.random,它將生成隨機數


查看完整回答
反對 回復 2023-12-20
  • 3 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號