小编Vah*_*ili的帖子

os.walk迭代迭代的顺序是什么?

我担心文件和目录的顺序os.walk().如果我有这些目录,1,10,11,12,2,20,21,22,3,30,31,32,什么是输出列表的顺序?

它是按数值排序的吗?

1 2 3 10 20 30 11 21 31 12 22 32
Run Code Online (Sandbox Code Playgroud)

或者按ASCII值排序,就像给出的那样ls

1 10 11 12 2 20 21 22 3 30 31 32
Run Code Online (Sandbox Code Playgroud)

另外,我该如何获得特定的排序?

python sorting os.walk

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

如何将变量从awk传递给shell命令?

我试图在awk中为文件的每一行运行一个shell命令,而shell命令需要一个输入参数.我试图使用system(),但它没有识别输入参数.

该文件的每一行都是一个文件的地址,我想运行一个命令来处理该文件.因此,对于一个简单的例子,我想对每一行使用'wc'命令并传递$1给wc.

awk '{system("wc $1")}' myfile
Run Code Online (Sandbox Code Playgroud)

shell awk parameter-passing

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

Python子进程:打开文件太多

我正在使用子进程调用另一个程序并将其返回值保存到变量.此过程在循环中重复,并在几千次之后程序崩溃并出现以下错误:

Traceback (most recent call last):
  File "./extract_pcgls.py", line 96, in <module>
    SelfE.append( CalSelfEnergy(i) )
  File "./extract_pcgls.py", line 59, in CalSelfEnergy
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
  File "/usr/lib/python3.2/subprocess.py", line 745, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.2/subprocess.py", line 1166, in _execute_child
    errpipe_read, errpipe_write = _create_pipe()
OSError: [Errno 24] Too many open files
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题非常感谢!

评论提供的代码:

cmd = "enerCHARMM.pl -parram=x,xtop=topology_modified.rtf,xpar=lipid27_modified.par,nobuildall -out vdwaals {0}".format(cmtup[1])
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
out, err = p.communicate()
Run Code Online (Sandbox Code Playgroud)

python subprocess

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

图中的R ggplot2图例

所以,我有以下data.frame,我想在一个图中为yval与xval生成两个图,每个zval和类型tp.左撇子

> df
    xval         yval           se zval cond
1    1.0 1.831564e-02 1.831564e-03    0    a
2    1.2 2.705185e-02 2.705185e-03    0    a
3    1.4 3.916390e-02 3.916390e-03    0    a
4    1.6 5.557621e-02 5.557621e-03    0    a
5    1.8 7.730474e-02 7.730474e-03    0    a
6    2.0 1.053992e-01 1.053992e-02    0    a
7    2.2 1.408584e-01 1.408584e-02    0    a
8    2.4 1.845195e-01 1.845195e-02    0    a
9    2.6 2.369278e-01 2.369278e-02    0    a
10   2.8 2.981973e-01 2.981973e-02    0    a
11   3.0 3.678794e-01 3.678794e-02    0    a
12   3.2 4.448581e-01 4.448581e-02    0    a …
Run Code Online (Sandbox Code Playgroud)

r legend facet ggplot2

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

R将矢量重塑为多个列

假设我在R中有一个向量,如下所示:

d<-seq(1,100)
Run Code Online (Sandbox Code Playgroud)

我想将这个向量重新整形为10x10矩阵,这样我就会得到这些数据:

[,1]  [,2]  [,3]  ..  [,10]   
  1      2    3   ..   10
  11    12   13   ..   20
  21    22   23   ..   30
  ..
  91    92   93    ..  100
Run Code Online (Sandbox Code Playgroud)

我试着使用reshape函数,但它没有用.有人可以帮忙吗?

r vector matrix reshape reshape2

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

R从原始数据生成2D直方图

我在2D,x,y中有一些原始数据,如下所示.我想从数据中生成二维直方图.通常,将x,y值除以大小为0.5的二进制数,并计算每个二进制数中的出现次数(同时对x和y).有没有办法做到这一点?

> df
            x         y
1   4.2179611 5.7588577
2   5.3901279 5.8219784
3   4.1933089 6.4317645
4   5.8076411 5.8999598
5   5.5781166 5.9382342
6   4.5569735 6.7833469
7   4.4024492 5.8019719
8   4.1734975 6.0896355
9   5.1707871 5.5640962
10  5.6380258 6.9112775
11  4.6405353 5.2251746
12  4.1809004 6.1127144
13  4.2764079 5.4598799
14  5.4466446 6.0130047
15  5.2443804 5.5421851
16  5.7521515 5.4115965
17  4.9667564 5.3519795
18  4.5007141 6.8669231
19  5.0268273 5.7681888
20  4.4738948 6.4241168
21  4.4116357 5.9819519
22  4.5741988 6.4595129
23  4.0839075 6.8105259
24  4.7154364 6.5054761
25  4.8986785 5.5511226 …
Run Code Online (Sandbox Code Playgroud)

2d r histogram raw-data

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

八度运算符 - :应用自动广播运算

在八度音阶3.6.2中,我有一个矩阵X=[1 2 3; 2 4 5; 2 6 5; 2 3 7; 3 6 8; 2 4 6; 3 6 8; 4 7 10],我想计算X均值(X),这给了我:

octave:2> X-mean(X)
warning: operator -: automatic broadcasting operation applied
ans =

  -1.37500  -2.75000  -3.50000
  -0.37500  -0.75000  -1.50000
  -0.37500   1.25000  -1.50000
  -0.37500  -1.75000   0.50000
   0.62500   1.25000   1.50000
  -0.37500  -0.75000  -0.50000
   0.62500   1.25000   1.50000
   1.62500   2.25000   3.50000
Run Code Online (Sandbox Code Playgroud)

但是,当我在另一台机器上尝试相同的命令时,它会抱怨矩阵的大小不匹配:

error: operator -: nonconformant arguments (op1 is 7x3, op2 is 1x3)
Run Code Online (Sandbox Code Playgroud)

知道如何激活在第一种情况下应用的" 自动广播操作 "吗?(八度版本是相同的!)

ubuntu operators matrix octave

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

将函数应用于ndarray的每一行

我有这个函数来计算向量x的平方Mahalanobis距离意味着:

def mahalanobis_sqdist(x, mean, Sigma):
   '''
    Calculates squared Mahalanobis Distance of vector x 
    to distibutions' mean 
   '''
   Sigma_inv = np.linalg.inv(Sigma)
   xdiff = x - mean
   sqmdist = np.dot(np.dot(xdiff, Sigma_inv), xdiff)
   return sqmdist
Run Code Online (Sandbox Code Playgroud)

我有一个形状为的numpy数组(25, 4).所以,我想在没有for循环的情况下将该函数应用于我的数组的所有25行.那么,基本上,我该如何编写这个循环的矢量化形式:

for r in d1:
    mahalanobis_sqdist(r[0:4], mean1, Sig1)
Run Code Online (Sandbox Code Playgroud)

在哪里mean1Sig1是:

>>> mean1
array([ 5.028,  3.48 ,  1.46 ,  0.248])
>>> Sig1 = np.cov(d1[0:25, 0:4].T)
>>> Sig1
array([[ 0.16043333,  0.11808333,  0.02408333,  0.01943333],
       [ 0.11808333,  0.13583333,  0.00625   ,  0.02225   ],
       [ 0.02408333,  0.00625   , …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy vectorization

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

R返回每行的最小列的索引

我有一个包含4列的data.frame(如下所示).我想找到每行的最小列索引(不是值).任何想法,以实现这一点?

> d
            V1         V2         V3         V4
1  0.388116155 0.98999967 0.41548536 0.76093748
2  0.495971331 0.47173142 0.51582728 0.06789924
3  0.436495321 0.48699268 0.21187838 0.54139290
4  0.313514389 0.50265539 0.08054103 0.46019601
5  0.277275961 0.39055360 0.29594162 0.70622532
6  0.264804739 0.86996266 0.85708635 0.61136741
7  0.627344463 0.54277873 0.96769568 0.80399490
8  0.814420492 0.35362949 0.39023446 0.39246250
9  0.517459983 0.65895805 0.93662382 0.06762166
10 0.498319937 0.67081260 0.43225997 0.42139151
11 0.046862110 0.97304915 0.06542971 0.09779383
12 0.619009734 0.82363618 0.14514799 0.52858058
13 0.007262782 0.82203403 0.08573499 0.61094206
14 0.001602586 0.33241230 0.57762669 0.45285004
15 0.698388370 0.83541257 …
Run Code Online (Sandbox Code Playgroud)

indexing r minimum apply

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

在具有急切执行的 TensorFlow 2.0 中,如何计算特定层的网络输出的梯度?

我有一个用 InceptionNet 制作的网络,对于输入样本bx,我想计算隐藏层的模型输出的梯度。我有以下代码:

bx = tf.reshape(x_batch[0, :, :, :], (1, 299, 299, 3))


with tf.GradientTape() as gtape:
    #gtape.watch(x)
    preds = model(bx)
    print(preds.shape, end='  ')

    class_idx = np.argmax(preds[0])
    print(class_idx, end='   ')

    class_output = model.output[:, class_idx]
    print(class_output, end='   ')

    last_conv_layer = model.get_layer('inception_v3').get_layer('mixed10')
    #gtape.watch(last_conv_layer)
    print(last_conv_layer)


grads = gtape.gradient(class_output, last_conv_layer.output)#[0]
print(grads)

Run Code Online (Sandbox Code Playgroud)

但是,这会给None. 我也试过gtape.watch(bx)了,但它仍然给出None.

在尝试 GradientTape 之前,我尝试使用tf.keras.backend.gradient但出现如下错误:

RuntimeError: tf.gradients is not supported when eager execution is enabled. Use tf.GradientTape instead.
Run Code Online (Sandbox Code Playgroud)

我的模型如下:

model.summary()

Model: "sequential_4"
_________________________________________________________________ …
Run Code Online (Sandbox Code Playgroud)

python gradient tensorflow tf.keras tensorflow2.0

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