我有一个包含numpy数组的列表,例如L = [a,b,c],其中a,b和c是n个数组,其中T的大小为N_a,T中的N_b和T中的N_c.
我想逐行连接a, b和c得到一个形状为numpy的数组(N_a + N_b + N_c,T).显然,一个解决方案是运行for循环并使用numpy.concatenate,但有没有任何pythonic方法来做到这一点?
谢谢
我有一个DataFrame df有五列的Spark .我想添加另一列,其值为第一列和第二列的元组.当使用withColumn()方法时,我得到不匹配错误,因为输入不是列类型,而是(列,列).我想知道在这种情况下是否有一个解决方案旁边的行循环运行?
var dfCol=(col1:Column,col2:Column)=>(col1,col2)
val vv = df.withColumn( "NewColumn", dfCol( df(df.schema.fieldNames(1)) , df(df.schema.fieldNames(2)) ) )
Run Code Online (Sandbox Code Playgroud) 我有一个1-d numpy的阵列a = [1,2,3,4,5,6]和获取两个输入,一个功能starting_index和ending_index,并且返回a[staring_index:ending_index].
很明显,当我ending_index小于时遇到麻烦starting_index.在这种情况下,函数应该从starting_index开始并a以循环方式遍历向量,即返回之后的starting_index所有元素加上从索引0到的所有元素ending_index.
举例来说,如果starting_index=4和ending_index=1那么输出应该是output = [5,6,1].我可以用if条件实现它,但我想知道是否有任何Pythonic和简洁的方法来做它?
我正在寻找类似于numpy.random.choice(range(3),replacement=False,size=2,p=[0.1,0.2,0.7])
TensorFlow的东西.
最接近Op它似乎是tf.multinomial(tf.log(p))将logits作为输入,但它不能在没有替换的情况下进行采样.在TensorFlow中,是否还有其他方法可以从非均匀分布中进行采样?
谢谢.
假设我有一个N大小的矩阵,n_i x n_o我想逐行标准化,即每行的总和应为1.我怎么能在theano做到这一点?
动机:使用softmax为我返回错误,所以我尝试通过实现我自己的softmax版本来回避它.
给定两个矩阵A(1000 x 100)和B(100 x 1000),而不是直接在张量流中计算其乘积,即 tf.dot(A,B),我想首先从A中选择10个cols(随机),从B中选择10行,然后使用tf.dot(A_s,B_s)
自然,第二次乘法应该更快,因为所需的乘法次数减少了10倍。
但是,实际上,在张量流中选择矩阵A的给定列来创建A_s似乎是一个效率极低的过程。
给定所需列的索引idx,我尝试了以下解决方案来创建A_s。这些解决方案根据其性能进行排名:
. A_s = tf.transpose(tf.gather(tf.unstack(A, axis=1), idx)): tf.dot(A_s,B_s)比tf.dot(A,B)创建A_s太昂贵要慢5倍。
p_shape = K.shape(params)
p_flat = K.reshape(params, [-1])
i_flat = K.reshape(K.reshape(
K.arange(0, p_shape[0]) * p_shape[1], [-1, 1]) + indices, [-1])
indices = [i_flat]
v = K.transpose(indices)
updates = i_flat * 0 - 1
shape = tf.to_int32([p_shape[0] * p_shape[1]])
scatter = tf.scatter_nd(v, updates, shape) + 1
out_temp = tf.dynamic_partition(p_flat,
partitions=scatter, num_partitions=2)[0]
A_s = tf.reshape(out_temp, [p_shape[0], -1])
Run Code Online (Sandbox Code Playgroud)
导致产品慢6-7倍 …