我想NumPy逐行比较两个数组并返回相同行的数量。
如果我使用下面的代码:
a=np.array([[1,2],[3,4]])
b=np.array([[1,4],[2,3]])
comp= np.logical_and(np.equal(a,b))
correct=numpy.sum(comp)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ValueError: invalid number of arguments
Run Code Online (Sandbox Code Playgroud)
但是,这可行:
np.logical_and([True, False], [False, False])
Run Code Online (Sandbox Code Playgroud)
这可能很愚蠢,但我是新手NumPy。请帮忙。
我想将X,Y,Z numpy数组转换为(X * Z)* Y numpy数组。
代码(慢):
def rearrange(data):
samples,channels,t_insts=data.shape
append_data=np.empty([0,channels])
for sample in range(0,samples):
for t_inst in range(0,t_insts):
channel_data=data[sample,:,t_inst]
append_data=np.vstack((append_data,channel_data))
return append_data.shape
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更好的矢量化方法
创建memmap数组:
out = np.memmap('my_array.mmap', dtype=np.float16, mode='w+', shape=(num_axis1, num_axis2))
for index,row in enumerate(temp_train_data):
__,cd_i=pywt.dwt(X_train[index:index+1001].ravel(),'haar')
out[index]=(cd_i)
(Pdb) out.shape
(1421392L, 3504L)
Run Code Online (Sandbox Code Playgroud)
现在,我只是对这个数组进行扩展.减去均值并除以方差.
np.mean(out[:,1])
memmap(inf, dtype=float16)
Run Code Online (Sandbox Code Playgroud)
输出是
memmap(inf, dtype=float16)
我不明白为什么!
可重复的例子:
import numpy as np
ut = np.memmap('my_array.mmap', dtype=np.float16, mode='w+',\
shape=(140000, 3504))
for index,row in enumerate(ut):
ut[index]=np.random.rand(1,3504)*10
print np.max(ut[:,1])
print np.mean(ut[:,1],axis=0)
Run Code Online (Sandbox Code Playgroud)
10.0
INF
下面的代码在Matlab中绘制圆圈.如何指定MarkerEdgeColor和MarkerFaceColor中.
function plot_model
exit_agents=csvread('C:\Users\sony\Desktop\latest_mixed_crowds\December\exit_agents.csv');
%scatter(exit_agents(:,2),exit_agents(:,3),pi*.25^2,'filled');
for ii =1:size(exit_agents,1),
circle(exit_agents(ii,2),exit_agents(ii,3),0.25);
end
end
function h = circle(x,y,r)
hold on
th = 0:pi/50:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
h = plot(xunit, yunit);
hold off
end
Run Code Online (Sandbox Code Playgroud)
使用绘图和散射在缩放时奇怪地缩放它们.这不是我想要的.
我想用解决约束最小化问题fmincon.但是约束是根据函数来定义的f(x_0)<a,其中x_0是问题的解决方案.可能吗?
在文档中,示例仅包含此x_0<a表单.
码:
f_obj = @(x)var_zcors(x,t_cw);
opt_theta = fminbnd(f_obj,0,360);
Run Code Online (Sandbox Code Playgroud)
现在,x应该受到限制f_constraint(x)< a.
更新(来自@Phil Goddard的回答):
f_obj = @(x)var_zcors(x,t_cw);
f_nl = @(x)deal(f_constraint(x)-a,[]);
x0 = 180; % or whatever is appropriate
opt_theta = fmincon(f_obj,x0,[],[],[],[],0,360,f_nl);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中说,f_constraint返回一个向量[x_min y_max]而不是标量.我想指定以下约束:
x_min>b
y_max<a
Run Code Online (Sandbox Code Playgroud)
有什么方法可以实现这一目标?
如何计算keras中的交叉熵?我计算L1损失如下:
def l1_loss(y_true, y_pred):
return K.sum(K.abs(y_pred - y_true), axis=-1)
Run Code Online (Sandbox Code Playgroud) 我想把张量分成两部分:
ipdb> mean_log_std
<tf.Tensor 'pi/add_5:0' shape=(?, 2) dtype=float32>
Run Code Online (Sandbox Code Playgroud)
背景:?对于样本数量而另一个维度是2.我想沿着第二维分割成沿该维度的形状1的两个张量流.
我尝试了什么?(https://www.tensorflow.org/api_docs/python/tf/slice)
ipdb> tf.slice(mean_log_std,[0,2],[0,1])
<tf.Tensor 'pi/Slice_6:0' shape=(0, 1) dtype=float32>
ipdb> tf.slice(mean_log_std,[0,1],[0,1])
<tf.Tensor 'pi/Slice_7:0' shape=(0, 1) dtype=float32>
ipdb>
Run Code Online (Sandbox Code Playgroud)
我希望上面两个分割的形状为(?,1)和(?,1).
我必须存储一个numpy矩阵列表.我尝试了两种方法:
1.创建并附list加到它:
ls_ws=[]
for ind in range(iterations):
...
ls_ws.append(ls_w) # ls_w is a matrix of size 6,1
Run Code Online (Sandbox Code Playgroud)
问题:开始时速度很快,最后速度很慢.
2.创建一个零矩阵并修改它:
for ind in range(iterations):
...
ls_ws=np.matrix(np.zeros((6,iterations)))
Run Code Online (Sandbox Code Playgroud)
问题:我不太确定,但无论每次迭代如何,这似乎都是相同的速度.
我得到的奇怪的事情,如果我将迭代设置为较小的数字,它很快.但是,如果我将它设置为1500这样的大数,则每次迭代(即使是第一次迭代)都非常慢.
第二种方法应该很快,但如果我将迭代设置为大数,则速度非常慢.为什么?怎么解决?
In [1]: x = set()
In [2]: pos = collections.namedtuple('Position', ['x','y'])
In [4]: x.add(pos(1,1))
In [5]: x
Out[5]: {Position(x=1, y=1)}
In [6]: pos(1,1) in x
Out[6]: True
In [8]: pos(1,2) in x
Out[8]: False
Run Code Online (Sandbox Code Playgroud)
没想到6号线pos(1,1) in x还能通车。因为 pos(1,1) 似乎每次都会创建一个具有不同对象 id 的对象。
In [9]: id(pos(1,1))
Out[9]: 140290954200696
In [10]: id(pos(1,1))
Out[10]: 140290954171016
Run Code Online (Sandbox Code Playgroud)
在这种情况下,集合运算符如何in处理命名元组?它会检查namedtuple的内容吗?
python ×5
numpy ×4
matlab ×2
append ×1
arrays ×1
constraints ×1
keras ×1
matrix ×1
memory ×1
netlogo ×1
optimization ×1
performance ×1
plot ×1
scatter-plot ×1
tensorflow ×1