第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Python 中使用布爾值

在 Python 中使用布爾值

手掌心 2022-09-06 21:22:19
我正在嘗試將數(shù)組中的字符串值替換為數(shù)組中位數(shù),但是當(dāng)我嘗試創(chuàng)建布爾值時(shí),我收到錯(cuò)誤代碼。我有一個(gè)包含3個(gè)字符串值的定義數(shù)組,我嘗試輸入的代碼是:arr2 = np.array ([1,2,3,1,5,2,3,4,2,                  4,1,3,4,1,2,5,3,2,                  1,"?",1,"n",3,2,5,                  1,2,"Nan",3,2,2,4,3])flag_good = [element.isdigit() for element in arr2]flag_bad = ~flag_good但是我在運(yùn)行該行時(shí)收到錯(cuò)誤代碼:flag_bad = ~flag_good如何用數(shù)組的中位數(shù)替換 sting 值?
查看完整描述

2 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

波浪號(hào)操作是 numpy 的一部分,是 numpy.invert 的快捷方式。


通過使用列表理解,是一個(gè)Python列表,它不支持此操作。flag_good


例如,您可以將列表轉(zhuǎn)換為 Numpy 數(shù)組,然后使用 invert 函數(shù)。flag_good


>>> flag_bad = ~np.array(flag_good)

>>> flag_bad

array([False, False, False, False, False, False, False, False, False,

       False, False, False, False, False, False, False, False, False,

       False,  True, False,  True, False, False, False, False, False,

        True, False, False, False, False, False])

或者,您可以使用矢量化并直接返回Numpy數(shù)組,其中函數(shù)按元素調(diào)用,而不是使用列表推導(dǎo)。


>>> flag_good = np.vectorize(lambda x: x.isdigit())(arr2)

>>> flag_bad = ~flag_good

>>> flag_bad

array([False, False, False, False, False, False, False, False, False,

       False, False, False, False, False, False, False, False, False,

       False,  True, False,  True, False, False, False, False, False,

        True, False, False, False, False, False])


查看完整回答
反對(duì) 回復(fù) 2022-09-06
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

我覺得你可以從一開始就解決問題,編輯你的列表理解。


flag_bad = [not(element.isdigit()) for element in arr2]


不過,為了回答你的問題,我會(huì)這樣做:


import numpy as np

input_list = [1,2,3,1,5,2,3,4,2,

                  4,1,3,4,1,2,5,3,2,

                  1,"?",1,"n",3,2,5,

                  1,2,"Nan",3,2,2,4,3]


# calculate the median

median = int(np.median([elt for elt in input_list if type(elt) is int])) 


# replace elements of the list only if you have a non-int 

output_array = np.array([elt if type(elt) is int else median for elt in input_list])

print(output_array)

輸出:


[1 2 3 1 5 2 3 4 2 4 1 3 4 1 2 5 3 2 1 2 1 2 3 2 5 1 2 2 3 2 2 4 3]


查看完整回答
反對(duì) 回復(fù) 2022-09-06
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)