日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

pythonflat怎么设置_python – numpy 2d和1d add flat

發(fā)布時(shí)間:2024/4/14 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonflat怎么设置_python – numpy 2d和1d add flat 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果numpy.add有2個(gè)參數(shù),則將它們作為添加的兩個(gè)操作數(shù).如果給出3個(gè)參數(shù),前兩個(gè)是添加的,第三個(gè)是結(jié)果.實(shí)際上不是結(jié)果,而是應(yīng)該保存結(jié)果的數(shù)組.

所以你用b添加了b并希望將它存儲(chǔ)在[1:3,0:3] .flat中.

讓我們?cè)囋噉p.add(b,b)給出

import numpy as np

a = np.zeros((4, 5))

b = np.ones(6)

np.add(b, b)

# returns array([ 2., 2., 2., 2., 2., 2.])

所以現(xiàn)在我嘗試了[1:3,0:3] .flat,它返回< numpy.flatiter,位于0x22204e80c10>.這意味著它返回一個(gè)迭代器,因此它不是數(shù)組.但是我們不需要一個(gè)我們想要一個(gè)數(shù)組的迭代器.有一種叫做ravel()的方法.所以嘗試[1:3,0:3] .ravel()會(huì)返回:

array([ 0., 0., 0., 0., 0., 0.])

所以我們有一個(gè)數(shù)組.特別是陣列也可用于存儲(chǔ)結(jié)果(相同的形狀!).所以我嘗試過(guò):

np.add(b, b, a[1:3, 0:3].ravel())

# array([ 2., 2., 2., 2., 2., 2.])

但是讓我們看看是否有變化:

a

#array([[ 0., 0., 0., 0., 0.],

# [ 0., 0., 0., 0., 0.],

# [ 0., 0., 0., 0., 0.],

# [ 0., 0., 0., 0., 0.]])

所以一個(gè)沒(méi)有改變.這是因?yàn)閞avel()只返回一個(gè)視圖(賦值將傳播到unraveled數(shù)組),否則它會(huì)返回一個(gè)副本.將結(jié)果保存在副本中是沒(méi)有意義的,因?yàn)閛ut參數(shù)的重點(diǎn)是操作是就地完成的.我只是猜測(cè)為什么要制作副本,但我認(rèn)為這是因?yàn)槲覀儚囊粋€(gè)較大的數(shù)組中取出一部分,其中該部分在內(nèi)存中不連續(xù).

所以我建議你不要在這種情況下使用out參數(shù),而是使用np.add的返回并將其存儲(chǔ)在指定區(qū)域中:

a[1:3, 0:3] = np.add(b, b).reshape(2,3) # You need to reshape here!

a

#array([[ 0., 0., 0., 0., 0.],

# [ 2., 2., 2., 0., 0.],

# [ 2., 2., 2., 0., 0.],

# [ 0., 0., 0., 0., 0.]])

此外,[1:3,0:3] .flat = np.add(b,b)也有效.

我認(rèn)為這本書(shū)要么已經(jīng)過(guò)時(shí)了,而且它與較舊的numpy版本一起工作,或者它根本就沒(méi)用過(guò),這本書(shū)就是一個(gè)錯(cuò)誤.

總結(jié)

以上是生活随笔為你收集整理的pythonflat怎么设置_python – numpy 2d和1d add flat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。