我希望得到:
输入:
arange(0.0,0.6,0.2)
Run Code Online (Sandbox Code Playgroud)
输出:
0.,0.4
Run Code Online (Sandbox Code Playgroud)
我想要
0.,0.2,0.4,0.6
Run Code Online (Sandbox Code Playgroud)
我如何实现使用范围或范围。如果不是什么是替代?
可能重复:
Python小数范围()步长值
我想生成这样的列表:
[0, 0.05, 0.1, 0.15 ... ]
Run Code Online (Sandbox Code Playgroud)
范围(0,1,0.05)会很好,但它不起作用:
range()整数步骤参数预期,得到浮点数.
你有什么优雅的想法吗?;)
因为numpy.arange()用于ceil((stop - start)/step)
确定项目的数量,所以小的浮点精度(stop = .400000001)
可能会向列表中添加一个意想不到的值。
第一种情况不包括停止点(拟)
>>> print(np.arange(.1,.3,.1))
[0.1 0.2]
Run Code Online (Sandbox Code Playgroud)
第二种情况包括停止点(非预期)
>>> print(np.arange(.1,.4,.1))
[0.1 0.2 0.3 0.4]
Run Code Online (Sandbox Code Playgroud)
numpy.linspace()解决了这个问题,np.linspace(.1,.4-.1,3)
。但要求您知道步骤数。np.linspace(start,stop-step,np.ceil((stop-step)/step))
导致相同的不一致。
如何在float
不知道范围内元素数量的情况下生成可靠范围?
考虑我想要生成未知精度的浮点索引的情况
np.arange(2.00(...)001,2.00(...)021,.00(...)001)
Run Code Online (Sandbox Code Playgroud) slice
python 中的A是不可迭代的。这段代码:
s = slice(1, 10, 2)
iter(s)
Run Code Online (Sandbox Code Playgroud)
导致此错误:
TypeError: 'slice' object is not iterable
Run Code Online (Sandbox Code Playgroud)
这是我通过创建一个可迭代列表来显示切片的代码:
list(range(s.start, s.stop, s.step))
Run Code Online (Sandbox Code Playgroud)
这使用切片对象的start
,stop
和step
属性。我将它们插入一个范围(一个不可变的序列类型)并创建一个列表:
[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
有什么遗漏吗?我可以更好地迭代切片吗?
可能重复:
Python小数范围()步长值
我在C中有一个循环:
for (float i = 0; i < 2 * CONST; i += 0.01) {
// ... do something
}
Run Code Online (Sandbox Code Playgroud)
我在python中需要相同的循环,但是:
for x in xxx
Run Code Online (Sandbox Code Playgroud)
不一样.
我怎么能在python中创建它?
我试图在6*6互连节点网格上的python中实现a*搜索算法,使用networkx组织节点和matplotlib进行显示.我有它的工作,所以它找到了最短的路径,但没有启发式,它只是强力搜索 - 这太昂贵了.如何在创建节点时为我的节点分配x,y坐标,还是有其他方法可以使启发式工作?(我知道networkx有一个我可以使用的内置*函数,但我想证明我可以实现该算法)
这是代码(StackOverflow格式有点乱):
import networkx as nx
G=nx.Graph()
import matplotlib.pyplot as plt
def add_nodes():
G.add_nodes_from([0, 1, 2, 3, 4, 5, \
6, 7, 8, 9, 10, 11, \
12, 13, 14, 15, 16, 17, \
18, 19, 20, 21, 22, 23, \
24, 25, 26, 27, 28, 29,\
30, 31, 32, 33, 34, 35])
c = 0
for y in range (0,5):
for x in range (0,5):
G.add_node(c, pos=(x/10,y/10))
c=c+1
#http://stackoverflow.com/questions/477486/how-to-use-a-decimal-range-step-value
#prev code for brute force search:
#https://pastebin.com/DT76bvw5
#node …
Run Code Online (Sandbox Code Playgroud) 我正在构建两个数字(浮点数)之间的范围,我希望这个范围具有确切的固定长度(不多也不少). range
并arange
与步骤工作,而不是.把东西放到伪Python中,这就是我想要实现的:
start_value = -7.5
end_value = 0.1
my_range = my_range_function(star_value, end_value, length=6)
print my_range
[-7.50,-5.98,-4.46,-2.94,-1.42,0.10]
Run Code Online (Sandbox Code Playgroud)
这基本上等同于seq
可以指定给定长度的序列的R函数.这在Python中可行吗?
谢谢.
如何在步骤为0.01的python中创建for循环?
我试过这个,但它不起作用:
for X0 in range (-0.02, 0.02, 0.01):
for Y0 in range (-0.06, 0.09, 0.01):
Run Code Online (Sandbox Code Playgroud)
它说TypeError:range()期望整数结束参数,得到浮点数.
我想在for循环中使用浮点数。所以我写了这段代码:
k=1
for i in range(0,3,0.2):
for j in range(k,k+3,1):
print("I= %i J=%i"%(i,j))
k=k+0.2
Run Code Online (Sandbox Code Playgroud)
但出现了以下错误:
Traceback (most recent call last):
File "C:\Users\Md. Rakibul Islam\Desktop\URI practise.py", line 2, in <module>
for i in range(0,3,0.2):
TypeError: 'float' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud) 我想知道列表中是否有等效语句来执行以下操作.在MATLAB中,我会做以下事情
fid = fopen('inc.txt','w')
init =1;inc = 5; final=51;
a = init:inc:final
l = length(a)
for i = 1:l
fprintf(fid,'%d\n',a(i));
end
fclose(fid);
Run Code Online (Sandbox Code Playgroud)
简而言之,我有一个初始值,一个最终值和一个增量.我需要创建一个数组(我读它相当于python中的列表)并打印到文件.