我尝试在z[i]^4
且小于100000
的数组中显示值,然后显示满足小于100000的元素数,但我得到的索引100已经输出轴0的边界大小为100。
我不确定该怎么做。原谅我可怕的措辞。
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 :(得分:0)
如果你想要的是z,i^4
的值最高为100000
,你可以这样做:
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)
我不确定这是计算它的最有效方法,但我保留了与你类似的语法,因此你更容易理解这些变化。我的方式:
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
”的显示值的要求。
使用列表理解的Pythonic解决方案:
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]
答案 1 :(得分:0)
我认为你误解了numpy数组(以及列表和元组)的最大索引是numpy数组(list和tuple length)的一个。顺便说一下: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
看看自己在谈论什么。