0
我有一個需要一個numpy數組的函數。我知道它是形狀 (1,C)或(R,C)Numpy:獨立於數組維數的代碼
我需要的是將每個條目除以其根據列的總和。 我讀this question,並且如果我得到(R,C)數組,則接受的答案有效。但是,對於(1,C)數組,我試圖訪問標量,其維數不存在,並引發錯誤。 有沒有辦法讓這個工作獨立於數組的維度? 見下面我的代碼:
import numpy as np
def f(x):
sums = np.sum(x, axis = 0)
return (x/sums[None,:])
scores = np.array([[1.0, 2, 3, 6],
[2, 4, 5, 6],
[3, 8, 7, 6]])
print f(scores)
print f(np.array([1,2,3]))
我知道爲什麼發生錯誤(金額只是在第二函數調用標量),但我怎麼得到這個沒有一堆if語句的工作嗎?
我很新的numpy,所以原諒我,我真的不知道該怎麼去谷歌。
你問題數組有形狀(3,),而不是(1,3)。打印形狀以查看自己。 – hpaulj
@hpaulj是正確的,請嘗試... x = np.atleast_2d(np.array([1,2,3]))這會產生... x.shape =>(1,3) – NaN
您能否給出您的期望輸出?我想你可能需要'keepdims'在這裏 – Eric