小编Ken*_* Ma的帖子

嵌套列表索引

我在Python中使用嵌套列表时遇到了一些问题.

基本上,我有一个包含所有0值的2D列表,我想在循环中更新列表值.

但是,Python不会产生我想要的结果.有什么我误解range()和Python列表索引?

some_list = 4 * [(4 * [0])]
for i in range(3):
    for j in range(3):
        some_list[i+1][j+1] = 1
for i in range(4):
    print(some_list[i])
Run Code Online (Sandbox Code Playgroud)

我期望的结果是:

[0, 0, 0, 0]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

但是Python的实际结果是:

[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

python python-3.x

11
推荐指数
2
解决办法
4112
查看次数

OpenCV Haar分类器阈值

我试图理解oepncv XML haar分类器,它看起来像这样:

      <_>
      <!-- tree 0 -->
      <_>
        <!-- root node -->
        <feature>
          <rects>
            <_>3 7 14 4 -1.</_>
            <_>3 9 14 2 2.</_></rects>
          <tilted>0</tilted></feature>
        <threshold>4.0141958743333817e-003</threshold>
        <left_val>0.0337941907346249</left_val>
        <right_val>0.8378106951713562</right_val></_></_>
Run Code Online (Sandbox Code Playgroud)

如原始论文中所述,应将阈值与特征(积分图像)的总和进行比较.但是,图像的像素值应为0 - 255(灰度图像).一个特征的总和怎么可能那么小(例如在这个特征中,阈值是0.004014 ......)?你们能给我一些指导来理解吗?

谢谢您的帮助!

c++ opencv object-detection

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

Matplotlib饼图标签对齐

我试图在matplotlib中创建一个饼图,并希望将标签放在楔形内.我使用以下代码来执行此操作:

import matplotlib.pyplot as plt

fig = plt.figure(1, figsize=(8,8), dpi=60)
ax=fig.add_axes([0.1,0.1,0.8,0.8])
labels = ['label0','label1','label2','label3','label4','label5','label6','label7','label8',\
          'label0','label1','label2','label3','label4','label5','label6','label7','label8']
colors = list('w' for _ in range(18))
fracs=list(20 for _ in range(18))
ax.pie(fracs, labels=labels, colors = colors, startangle=10,labeldistance=0.8)
plt.show()
Run Code Online (Sandbox Code Playgroud)

似乎标签未在楔形内正确对齐,如下图所示.有没有办法修改(或旋转)标签,以便它们可以在楔形内正确显示?

谢谢!

Matplotlib生成图像

python charts matplotlib

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

Python写入文件缺少行

我在使用python将字符串写入文件时遇到了麻烦:(我正在尝试使用python生成一些C程序)我的代码如下:

filename = "test.txt"
i = 0
string = "image"
tempstr = ""
average1 = "average"
average2 = "average*average"
output = ""
FILE = open(filename,"w")
while i < 20:
    j = 0
    output = "square_sum = square_sum + "
    while j < 20:        
        tempstr = string + "_" + str(i) + "_" + str(j)        
        output = output + tempstr + "*" + tempstr + " + " + average2 + " - 2*" + average1 + "*" + tempstr        
        if …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

带有大整数的Python 3

我使用Python处理一些大整数(64位,无符号)。我正在尝试将值的字符串转换为整数。但是我的Python3给了我错误的结果。例如,如果我将输入字符串“ 12736193479609682490”转换为整数,则结果不是我期望的:

a = '12736193479609682490'
b = int(float(a))

>>>b
12736193479609681920
Run Code Online (Sandbox Code Playgroud)

我正在Ubuntu 12.04-64bit下使用Python 3.4.0。我应该怎么做才能正确转换?谢谢。

python python-3.x

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

Python读取大文本文件

我试图逐行比较两个大文本文件(每个10GB)而不将整个文件加载到内存中.我使用了以下代码,如其他线程所示:

with open(in_file1,"r") as f1, open(in_file2,"r") as f2:
    for (line1, line2) in zip(f1, f2):
        compare(line1, line2)
Run Code Online (Sandbox Code Playgroud)

但似乎python无法逐行读取文件.我观察到运行代码时的内存使用率> 20G.我也试过用:

import fileinput
for (line1, line2) in zip(fileinput.input([in_file1]),fileinput.input([in_file2])):
    compare(line1, line2)
Run Code Online (Sandbox Code Playgroud)

这个也尝试将所有内容加载到内存中.我在Centos 5.9上使用Python 2.7.4,并且我没有在代码中存储任何行.

我的代码出了什么问题?我应该如何更改它以避免将所有内容加载到RAM中?

python file-io file

0
推荐指数
1
解决办法
367
查看次数