小编ome*_*rbp的帖子

使用Python迭代目录

我需要遍历给定目录的子目录并搜索文件.如果我得到一个文件,我必须打开它并更改内容并用我自己的行替换它.

我试过这个:

import os

rootdir ='C:/Users/sid/Desktop/test'

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        f=open(file,'r')
        lines=f.readlines()
        f.close()
        f=open(file,'w')
        for line in lines:
            newline = "No you are not"
            f.write(newline)
        f.close()
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.我究竟做错了什么?

python directory

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

用代理运行conda

我在Windows上使用Anaconda 2.7,我的网络连接使用代理.

以前,当使用python 2.7(Not Anaconda)时,我安装了这样的包:

pip install {packagename} --proxy proxy-us.bla.com:123
Run Code Online (Sandbox Code Playgroud)

有没有办法运行conda代理参数?没有看到它conda help.

谢谢

proxy python-2.7 anaconda

49
推荐指数
5
解决办法
8万
查看次数

在单独的文件中从类创建对象

我已经完成了几个关于Python的教程,我知道如何定义类,但我不知道如何使用它们.例如,我创建以下文件(car.py):

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'
Run Code Online (Sandbox Code Playgroud)

然后我创建另一个文件(Mercedes.py),我想从类Car创建一个Mercedes对象:

Mercedes = Car('Mercedes', 'S Class', 'Red')
Run Code Online (Sandbox Code Playgroud)

,但是我收到一个错误:

NameError: name 'Car' is not defined
Run Code Online (Sandbox Code Playgroud)

如果我在创建它的同一个文件(car)中创建一个实例(对象),我没有问题:

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'

Mercedes = Car('Mercedes', 'S Class', 'Red')

print (Mercedes.color)
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

Red
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何从同一个包(文件夹)中不同文件的类创建一个对象?

python class object package

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

Python中两个向量的交叉产物

如何在不使用编程库的情况下计算两个向量的叉积?

例如给定的向量a = (1, 2, 3)b = (4, 5, 6)

python

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

如何使用R ggplot更改x轴刻度标签名称,顺序和箱图颜色?

我有一个包含csv文件的文件夹,每个文件有两列数据,例如:

0,red
15.657,red
0,red
0,red
4.429,red
687.172,green
136.758,green
15.189,red
0.152,red
23.539,red
0.348,red
0.17,blue
0.171,red
0,red
61.543,green
0.624,blue
0.259,red
338.714,green
787.223,green
1.511,red
0.422,red
9.08,orange
7.358,orange
25.848,orange
29.28,orange
Run Code Online (Sandbox Code Playgroud)

我使用以下R代码生成箱图:

files <- list.files(path="D:/Ubuntu/BoxPlots/test/", pattern=NULL, full.names=F, recursive=FALSE)
files.len<-length(files)
col_headings<-c("RPKM", "Lineage")

for (i in files){
  i2<-paste(i,"png", sep=".")
  boxplots<-read.csv(i, header=FALSE)
  names(boxplots)<-col_headings
  png(i2)
  bplot<-ggplot(boxplots, aes(Lineage, RPKM)) + geom_boxplot(aes(fill=factor(Lineage))) + geom_point(aes(colour=factor(Lineage)))
  print(bplot)
  graphics.off()
}
Run Code Online (Sandbox Code Playgroud)

现在我想改变箱线图的颜色以匹配相应的x轴颜色标签.我还想更改x轴标签的名称,以及它们的顺序.有没有办法使用ggplot或qplot来做到这一点?

r ggplot2 boxplot

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

在Python中生成大小为k(包含k个元素)的所有子集

我有一组值,并希望创建包含2个元素的所有子集的列表.

例如,源集([1,2,3])具有以下2元素子集:

set([1,2]), set([1,3]), set([2,3])
Run Code Online (Sandbox Code Playgroud)

有没有办法在python中执行此操作?

python tuples set subset

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

检查两个scipy.sparse.csr_matrix是否相等

我想检查两个csr_matrix是否相等.

如果我做:

x.__eq__(y)
Run Code Online (Sandbox Code Playgroud)

我明白了:

raise ValueError("The truth value of an array with more than one "
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)

但是,这很好用:

assert (z in x for z in y)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?也许使用一些scipy优化的功能?

非常感谢

python numpy scipy

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

将高阶矩阵与numpy相乘

我创造了这个玩具问题,反映了我更大的问题:

import numpy as np

ind = np.ones((3,2,4)) # shape=(3L, 2L, 4L)
dist = np.array([[0.1,0.3],[1,2],[0,1]]) # shape=(3L, 2L)

ans = np.array([np.dot(dist[i],ind[i]) for i in xrange(dist.shape[0])]) # shape=(3L, 4L)
print ans

""" prints:
   [[ 0.4  0.4  0.4  0.4]
    [ 3.   3.   3.   3. ]
    [ 1.   1.   1.   1. ]]
"""
Run Code Online (Sandbox Code Playgroud)

我想尽快做到这一点,所以使用numpy的函数来计算ans应该是最好的方法,因为这个操作很重,我的矩阵很大.

我看到这篇文章,但形状不同,我无法理解axes我应该用于这个问题.但是,我确信,数字应该有答案.有什么建议?

编辑:我接受了@ ajcr的答案,但也请阅读我自己的答案,它可能会帮助别人......

python numpy matrix linear-algebra scipy

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

在Java中实现自定义类的Hashcode

可能重复:
在Java中覆盖equals和hashCode

我应该为Custom class Person实现hashcode和equals.人包括

名字

我应该实现equals和hashcode,这样两个firstnamelastname的人应该为equals返回true,并且应该被Hashmap接受.我已经像这样实现了Person类:

public class Person {


    String firstname;
    String lastname;
    public Person(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }

    @Override
    public int hashCode() {
        // TODO Auto-generated method stub
        return firstname.hashCode()+lastname.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        // TODO Auto-generated method stub
    Person u=(Person) obj;

        return u.firstname.equals(firstname) && u.lastname.equals(lastname);
    }

}
Run Code Online (Sandbox Code Playgroud)

这里Hashcode的实现是否正确?即使我得到了预期的结果,我想知道这个实现是否正确?

java hashcode

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

在Python中设置枚举的最简洁方法是什么?

我对Python比较陌生,我有兴趣找到创建枚举的最简单方法.

我发现的最好的是:

(APPLE, BANANA, WALRUS) = range(3)
Run Code Online (Sandbox Code Playgroud)

其中APPLE为0,BANANA为1等.

但我想知道是否有更简单的方法.

python enums enumeration

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