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

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

以零開頭的 numpy 形狀是什么意思

以零開頭的 numpy 形狀是什么意思

斯蒂芬大帝 2021-09-14 21:30:44
好的,所以我發現您可以擁有形狀為 0 的數組。對于您將 0 作為唯一維度的情況,這對我來說很有意義。它是一個空數組。np.zeros(0)但是如果你有這樣的事情:np.zeros((0, 100))對我來說很困惑。為什么是這樣定義的?
查看完整描述

2 回答

?
莫回無

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

據我所知,這只是表達空數組的一種冗余方式。如果你有一排“空”,這對 python 來說似乎無關緊要。


假設我們有一個給定數組 a:


import numpy as np


a = np.zeros((0,100))

如果我們打印 a 我們得到的只是空數組本身:


print(a)


>>> []

此外,我們實際上可以看到,盡管如此,它仍保持其形狀”


np.shape(a)


>>> (0, 100)

但是,如果您嘗試按位置訪問給定元素,例如:


print(a[0])

或者


print(a[0][0])

你得到一個 IndexError :


IndexError: index 0 is out of bounds for axis 0 with size 0

因此,我相信空數組的數學含義,盡管您分配給它們的形狀是相同的。


查看完整回答
反對 回復 2021-09-14
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

好吧,在這種特殊情況下,這兩個陳述是等價的:


print(np.zeros(0))

>>>[]


print(np.zeros((0,100)))

>>>[]

這是因為空數組是空數組。你的直覺在那里是正確的。如果你輸入:


np.zeros(10)

或者


np.zeros((1,10))

你也會得到相同的數組,即[0,0,0,0,0,0,0,0,0,0]. 僅當您指的是實際更改數組形狀的數字時,形狀才重要。例如:


print(np.zeros((2,3)))

>>>[[0,0,0]

   [0,0,0]]

但:


print(np.zeros((3,2)))

>>>[[0,0]

    [0,0]

    [0,0]]

沒有什么特別不透明的。你的常識在這里實際上適用。如果數組為空,則添加到其中的其他維度都不重要。


查看完整回答
反對 回復 2021-09-14
  • 2 回答
  • 0 關注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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