相关疑难解决方法(0)

Python:具有结束限制的范围或 numpy Arange 包括

我希望得到:

输入:

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 numpy

9
推荐指数
2
解决办法
2万
查看次数

range()with float step参数

可能重复:
Python小数范围()步长值

我想生成这样的列表:

[0, 0.05, 0.1, 0.15 ... ]
Run Code Online (Sandbox Code Playgroud)

范围(0,1,0.05)会很好,但它不起作用:

range()整数步骤参数预期,得到浮点数.

你有什么优雅的想法吗?;)

python

7
推荐指数
3
解决办法
2万
查看次数

如何防止浮动不精确影响numpy.arange?

因为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)

python floating-point numpy python-2.7

6
推荐指数
2
解决办法
2396
查看次数

如何迭代切片?

slicepython 中的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,stopstep属性。我将它们插入一个范围(一个不可变的序列类型)并创建一个列表:

[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)

有什么遗漏吗?我可以更好地迭代切片吗?

python iterator loops slice python-3.x

6
推荐指数
1
解决办法
2856
查看次数

像在C中一样在python中循环"for"

可能重复:
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中创建它?

python

5
推荐指数
2
解决办法
3106
查看次数

在networkx/python中为x搜索启发式分配x,y coords

我试图在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)

python algorithm heuristics a-star networkx

5
推荐指数
1
解决办法
379
查看次数

在Python中计算确切数值的范围

我正在构建两个数字(浮点数)之间的范围,我希望这个范围具有确切的固定长度(不多也不少). rangearange与步骤工作,而不是.把东西放到伪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中可行吗?

谢谢.

python list range

4
推荐指数
1
解决办法
2830
查看次数

Python for循环与小步骤

如何在步骤为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()期望整数结束参数,得到浮点数.

python loops for-loop

3
推荐指数
3
解决办法
2312
查看次数

我如何使用浮点数在Python的for循环中进行增量

我想在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)

python-3.x

3
推荐指数
1
解决办法
1万
查看次数

如何使用给定的增量创建一系列数字

我想知道列表中是否有等效语句来执行以下操作.在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中的列表)并打印到文件.

python matlab file list

2
推荐指数
1
解决办法
4万
查看次数