3 回答

TA貢獻(xiàn)1836條經(jīng)驗 獲得超4個贊
構(gòu)造數(shù)組的方式A
使其始終具有整數(shù)dtype。您可以使用 進(jìn)行檢查print(A.dtype)
。這意味著 0-1 之間的值將被強(qiáng)制轉(zhuǎn)換為 0,這是一個問題,因為np.random.rand
僅返回 0 到 1 之間的值。您可以通過幾種方式解決此問題:
使用浮動體構(gòu)建?
A=np.array([(1.,2.,3.),(4.,5.,6.)])
顯式設(shè)置 dtype?
A=np.array([(1,2,3),(4,5,6)], dtype=np.float)
轉(zhuǎn)換為浮點類型?
A=np.array([(1,2,3),(4,5,6)]).astype(np.float)

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊
問題是它A
是一個整數(shù)數(shù)組,并且np.random.random
出于實際目的生成小于一的浮點數(shù)。將這樣的數(shù)字轉(zhuǎn)換為整數(shù)總是會產(chǎn)生零。
您可以通過以下兩種方式之一進(jìn)行修復(fù):
創(chuàng)建
A
一個 dtype 數(shù)組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...生成隨機(jī)整數(shù)而不是浮點數(shù),或者至少生成會轉(zhuǎn)換為非零整數(shù)的浮點數(shù):
A。
B[:]= np.random.randint(256, size=B.shape)
b.B[:]= np.random.random(B.shape) * 256
C。ETC...

TA貢獻(xiàn)1895條經(jīng)驗 獲得超7個贊
您的代碼經(jīng)過少量修改
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,它將生成隨機(jī)數(shù)
添加回答
舉報