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

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

Numpy 布爾語句 - 在語句中使用 a.any() 和 a.all() 的幫助

Numpy 布爾語句 - 在語句中使用 a.any() 和 a.all() 的幫助

UYOU 2022-03-09 20:08:51
所以假設我有一個變量 a 它是一個 numpy 數組。當 a 小于某個值時,我想應用某個函數,而當它大于這個值時,我將應用一個不同的函數。我嘗試使用布爾 if 語句執行此操作,但返回以下錯誤:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()我從這個答案中知道我需要使用 numpy a.any() 和 a.all() 但我不清楚在循環中如何/在哪里使用它們。我在下面提供了一個非常簡單的示例:import numpy as npa = np.linspace(1, 10, num=9)def sortfoo(a):    if a < 5:        b = a*3    else:        b = a/2    return bresult = sortfoo(a)print(result)所以我想我是在問一個例子,說明我需要在哪里以及如何在上面使用 any() 和 all() 。非常基本的問題,但由于某種原因,我的大腦工作不清晰。非常感謝任何幫助。
查看完整描述

2 回答

?
BIG陽

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

鑒于描述,這看起來像一個用例np.where()


a = np.linspace(1, 10, num=9)


b = np.where(a<5,a*3,a/2)


b

array([ 3.    ,  6.375 ,  9.75  , 13.125 ,  2.75  ,  3.3125,  3.875 ,

    4.4375,  5.    ])

由于您還提到想要應用不同的功能,您可以使用相同的語法


def f1(n):

    return n*3


def f2(n):

    return n/2


np.where(a<5,f1(a),f2(a))


array([ 3.    ,  6.375 ,  9.75  , 13.125 ,  2.75  ,  3.3125,  3.875 ,

        4.4375,  5.    ])


查看完整回答
反對 回復 2022-03-09
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

在 numpy 中使用簡單的語句,您可以這樣做:


import numpy as np

a = np.linspace(1, 10, num=9)

s = a < 5 # Test a < 5

a[s] = a[s] * 3

a[s == False] = a[s == False] / 2


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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