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

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

讀取 Numpy 數組的一部分

讀取 Numpy 數組的一部分

HUX布斯 2022-11-01 14:55:35
假設,我有以下數據集作為 numpy 數組:import numpy as npx = np.array([0, 5, 10, 15, 20, 25, 30])y = np.array([0, 0.13157895, 0.31578947, 0.40789474, 0.46052632, 0.5, 0.53947368])我只想讀取與 x = 20、25、30 對應的值。如何使用 numpy 讀???
查看完整描述

5 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

我們可以y使用zip和進行過濾list comprehension。


np.array([v for i, v in zip(x, y) if i in [20, 25, 30]])

#array([0.46052632, 0.5       , 0.53947368])

大熊貓的替代品。


import pandas as pd

pd.Series(index=x, data=y).loc[[20, 25, 30]].values


查看完整回答
反對 回復 2022-11-01
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

numpy.searchsorted可以做的工作:


idx = np.searchsorted(x,[20,25,30]) 

part = y[idx]

請注意,x必須進行排序。如果x沒有排序嘗試:


idx_sort = np.argsort(x)


xsorted = x[idx_sort]

ysorted = y[idx_sort]


idx = np.searchsorted(xsorted, [20,25,30])

part = y[idx]


查看完整回答
反對 回復 2022-11-01
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

另一種使用numpy.any創建布爾掩碼的方法:


import numpy as np


x = np.array([0, 5, 10, 15, 20, 25, 30])

y = np.array([0, 0.13157895, 0.31578947, 0.40789474, 0.46052632, 0.5, 0.53947368])


values = [20,25,30]

m = np.any([x==v for v in values], axis=0)


y[m]

array([0.46052632, 0.5       , 0.53947368])


查看完整回答
反對 回復 2022-11-01
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

此代碼將執行此操作:


import numpy as np


ind = [np.where(x == num)[0] for num in [20, 25, 30]]

corresponding = y[ind]

我相信沒有必要解釋,但如果你需要什么,請評論


查看完整回答
反對 回復 2022-11-01
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

不是用 numpy 而是用 dict:


import numpy as np


x = np.array([0, 5, 10, 15, 20, 25, 30])

y = np.array([0, 0.13157895, 0.31578947, 0.40789474, 0.46052632, 0.5, 0.53947368])


xy_dict = {}


for j, k in zip(x, y):

    xy_dict[j] = k


print(xy_dict)


查看完整回答
反對 回復 2022-11-01
  • 5 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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