2017-05-05 9 views
1

z[i]^4より小さく、100000より小さい配列の値を表示しようとしていますが、100000未満の要素を表示しようとしていますが、サイズ100whileループのPythonの値が特定の値より小さい

との軸0の境界は、私が何をすべきかわかりません。私の恐ろしい言葉を許してください。

import numpy as np 

z = np.array(range(100)) 
k = 0 
while k <= 100: 
    k = k+1 
    z[k]=k**4 
    print(z) 
a = sum(i <= 30 for i in z) 
print(a) 
+0

'z1 = sum(i

+0

なぜあなたは 'k <277'を使用しているのか分かりません。 'z'は100個しかないので、' k = 101'のときはwhileループは動作しません。 –

答えて

0

何が欲しいのは、あなたがこれを行うことができます100000までi^4の値を持っているZの場合:

import numpy as np 

z = np.array(range(100)) 
k = 0 
while k < len(z) - 1: 
    k = k+1 
    if k**4 >= 100000: 
     break 
    else: 
     z[k]=k**4 
    print(z) 

私がこのを計算する最も効率的な方法でわからないんだけど、Iあなたのものと似た構文を保持していたので、変更を理解しやすくなりました。私がしたい方法:

import numpy as np 

z = np.array(range(100)) 

for number in z: 
    if number**4 <= 100000: 
     z[number]=number**4 
     print(number**4) 
    else: 
     break 

これは、リストの値を編集する以外にも、「i^4未満100000された表示値」のあなたの条件を達成しています。

Python的ソリューション使用してリスト内包:

z = range(100) 
>>> [x**4 for x in z if x**4 <= 100000] 
[0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 14641, 20736, 28561, 38416, 50625, 65536, 83521] 
0

私はあなたがnumpyの配列への最大のインデックス(ともリストとタプル)が一つ少なくnumpyの配列であることを誤解だと思います(リストやタプル長)サイズ。

... range(100)は、0から99までではない1から100までの値を作成し、このコードを試してみてください:ところで

import numpy as np 

z = np.array(range(100)) 

print(z[0]) 
print(z[99]) 
print(z[100]) 

与える:

0 
99 
Traceback (most recent call last): 
    File "numpyIndex_Cg.py", line 7, in <module> 
    print(z[100]) 
IndexError: index 100 is out of bounds for axis 0 with size 100 

を私は何を自分で見るためにについて話す。

関連する問題