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

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

確定 NumPy 數組的切片索引時遇到問題

確定 NumPy 數組的切片索引時遇到問題

白豬掌柜的 2023-06-27 16:29:00
我有一個 NumPyX * Y元素數組,表示為扁平數組 ( arr = np.array(x * y))。給定以下值:X = 832Y = 961我需要按以下順序訪問數組的元素:arr[0:832:2]arr[1:832:2]arr[832:1664:2]arr[833:1664:2]...arr[((Y-1) * X):(X * Y):2]我不確定在數學上如何實現start循環stop中的每次迭代。
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

This should do the trick


Y = 961

X = 832


all_ = np.random.rand(832*961)


# Iterating over the values of y

for i in range(1,Y):

    # getting the indicies from the array we need

    # i - 1 = Start

    # X*i = END

    # 2 is the step

    indicies = list(range(i-1,X*i,2))

    # np.take slice values from the array or get values corresponding to the list of indicies we prepared above

    required_array = np.take(indices=indices)

    


查看完整回答
反對 回復 2023-06-27
?
慕婉清6462132

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

假設您有一個形狀數組(x * y,),想要分塊處理x。您可以簡單地重新調整數組的形狀來調整(y, x)和處理行:


>>> x = 832

>>> y = 961

>>> arr = np.arange(x * y)

現在重塑并批量處理。在下面的示例中,我取每行的平均值。您可以通過這種方式將任何您想要的函數應用于整個數組:


>>> arr = arr.reshape(y, x)

>>> np.mean(arr[:, ::2], axis=1)

>>> np.mean(arr[:, 1::2], axis=1)

重塑操作不會更改數組中的數據。它指向的緩沖區與原始緩沖區相同。ravel您可以通過調用數組來反轉重塑。


查看完整回答
反對 回復 2023-06-27
?
繁花不似錦

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

對于對此解決方案感興趣的任何人(每次迭代,而不是每次迭代增加移位):


for i in range(Y):

    shift = X * (i // 2)

    begin = (i % 2) + shift

    end = X + shift

    print(f'{begin}:{end}:2')


查看完整回答
反對 回復 2023-06-27
  • 3 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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