2015-11-02 74 views
1

如何打印出數組的百分比?如何在Python中顯示數組的百分比

例如:

如果我有

x = np.array([2,3,1,0,4,3,5,4,3,2,3,4,5,10,15,120,102,10]) 

你如何設置數組的百分比爲零?如果我想保持數組的前10%,並將數組的剩餘90%更改爲零?

預先感謝您?

+0

%的? – Marcin

+1

該主題談論顯示一個百分比,但正文談到設置一個百分比。該主題是否需要修復? – davejagoda

回答

6

這會給你90%左右在前面:

x[0:int(len(x)*0.9)] 

,並在後面90%(通過跳過前10%):

x[int(len(x)*0.1):] 

所以設置最後90 %至零:

x[int(len(x)*0.1):] = 0 
+0

您錯過了零件*並將數組的剩餘90%更改爲零*。添加'x [(len(x)* 0.1):] = 0'。 – daniel451

+0

'x [len(x)* 0.1:] = 0'會拋出一個錯誤:'TypeError:只能分配一個可迭代的' – levi

+0

@levi:當你得到錯誤時,你使用的是哪個版本的NumPy? –

1

你可以這樣做:

import numpy as np 

x = np.array([2,3,1,0,4,3,5,4,3,2,3,4,5,10,15,120,102,10]) 

cut_off = int(0.1*len(x)) 

print(len(x), cut_off) 
for idx in range(cut_off,len(x)): 
    x[idx] = 0 
+0

在NumPy中效率非常低。 –

0

做這個工作嗎?

x = np.array([2,3,1,0,4,3,5,4,3,2,3,4,5,10,15,120,102,10]) 
j=len(x) 
k=(j/100)*10 
for index in range(k,j): 
    x[index]=0 
+0

在NumPy中效率非常低。 –

1
x = [2,3,1,0,4,3,5,4,3,2,3,4,5,10,15,120,102,10] 
index = 10 * len(x)/100 
x[index:] = [0]*(len(x) - 1 index) 
print x 
>>> x = [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
1

這裏是我會做什麼:

x = np.array([2,3,1,0,4,3,5,4,3,2,3,4,5,10,15,120,102,10]) 
change = round(0.9 * len(x)) # changing 90% 
x[-change:] = 0 # change from last value towards beginning of array 
print(x) 

產生它的長度

[2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]