簡體   English   中英

ValueError:必須通過二維輸入。 形狀=(1, 50, 2)

[英]ValueError: Must pass 2-d input. shape=(1, 50, 2)

我打算列出 50 個隨機數,從 1 到 100,然后取數字的平方和平方根,然后我會將它們放入一個不錯的 PD.Dataframe(第一個列表是隨機數,它們是行和另外兩個列表是列)。 我的代碼如下所示:

import random
import math
import numpy as np
import pandas as pd
y = random.sample(range(1, 100), 50)
y1 = [f**2 for f in y]
y2 = [round(math.sqrt(f2)) for f2 in y]
whole = y + y1 + y2
whole2 = (np.array(whole)).reshape((50,3))
df = pd.DataFrame([whole2[:,1:]], index=whole2[:,0], columns=['Number', 'Square','Square Root'])

如果有人能告訴我哪里以及如何出錯,我將不勝感激。 謝謝!

你的邏輯有點不對勁。 我認為 np.stack 在這里也更直觀一些。 如果您只想隨機數一次,也可以從堆棧中刪除 y。

import random
import math
import numpy as np
import pandas as pd
y = random.sample(range(1, 100), 50)
y1 = [f**2 for f in y]
y2 = [round(math.sqrt(f2)) for f2 in y]
whole = np.stack([y1, y2], axis=-1)
df = pd.DataFrame(whole, index=y, columns=['Square','Square Root'])

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM