我担心文件和目录的顺序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)
另外,我该如何获得特定的排序?
我试图在awk中为文件的每一行运行一个shell命令,而shell命令需要一个输入参数.我试图使用system(),但它没有识别输入参数.
该文件的每一行都是一个文件的地址,我想运行一个命令来处理该文件.因此,对于一个简单的例子,我想对每一行使用'wc'命令并传递$1给wc.
awk '{system("wc $1")}' myfile
Run Code Online (Sandbox Code Playgroud) 我正在使用子进程调用另一个程序并将其返回值保存到变量.此过程在循环中重复,并在几千次之后程序崩溃并出现以下错误:
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) 所以,我有以下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中有一个向量,如下所示:
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函数,但它没有用.有人可以帮忙吗?
我在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) 在八度音阶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)
知道如何激活在第一种情况下应用的" 自动广播操作 "吗?(八度版本是相同的!)
我有这个函数来计算向量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)
在哪里mean1和Sig1是:
>>> 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) 我有一个包含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) 我有一个用 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)