簡體   English   中英

np.array中的函數

[英]Functions within np.array

我正在嘗試將我具有的.values轉換為其中具有函數的數組,但會繼續出現錯誤。 希望能有所幫助!

這是.values:

Y = df['GDP_growth'].values
array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839',
       '0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype-object)

這是使出現錯誤的數組的命令:

Y = np.array([1 if y>= 3 else 0 for y in Y])

在我的情況下,錯誤在於結果全部為1。

您可以使用numpy過濾,但是首先需要根據需要將類型從strobject更改為floatnp.float

import numpy as np
Y = np.array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839',
   '0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype=object)
Y = Y.astype(float)

Y[Y<=3] = 0
Y[Y>3] = 1

In [67]: Y
Out[67]: array([ 1.,  0.,  1.,  1.,  0.,  1.,  1.,  0.])

編輯

如果需要一些預處理以將數據轉換為數字值,則可以使用to_numeric ,然后將dropna轉換為有趣的序列或整個數據幀 ,即序列:

z = pd.Series(Y)
z[0] = 'a'

In [293]: z
Out[293]:
0               a
1    -1.760010328
2     5.155440545
3     4.019541839
4     0.801760179
5     7.200000003
6     3.727818428
7     0.883846197
dtype: object

pd.to_numeric(z, errors='coerce').dropna() 

In [296]: pd.to_numeric(z, errors='coerce').dropna()
Out[296]:
1   -1.760010
2    5.155441
3    4.019542
4    0.801760
5    7.200000
6    3.727818
7    0.883846
dtype: float64  

弄清楚了! 顯然我有一些表示為'..'的缺失值,所以我必須先刪除那些行以將其弄亂-然后可以應用.astype

暫無
暫無

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

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