小编TNM*_*TNM的帖子

连接作为列表元素的numpy数组

我有一个包含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方法来做到这一点?

谢谢

python arrays numpy list

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

如何将Spark中`Dataframe`的两列合并为一个2-Tuple?

我有一个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)

scala apache-spark-sql spark-dataframe

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

圆形numpy数组索引

我有一个1-d numpy的阵列a = [1,2,3,4,5,6]和获取两个输入,一个功能starting_indexending_index,并且返回a[staring_index:ending_index].

很明显,当我ending_index小于时遇到麻烦starting_index.在这种情况下,函数应该从starting_index开始并a以循环方式遍历向量,即返回之后的starting_index所有元素加上从索引0到的所有元素ending_index.

举例来说,如果starting_index=4ending_index=1那么输出应该是output = [5,6,1].我可以用if条件实现它,但我想知道是否有任何Pythonic和简洁的方法来做它?

python indexing numpy

8
推荐指数
2
解决办法
4882
查看次数

在TensorFlow中无需替换给定的非均匀分布即可进行抽样

我正在寻找类似于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中,是否还有其他方法可以从非均匀分布中进行采样?

谢谢.

random choice multinomial tensorflow

8
推荐指数
1
解决办法
1193
查看次数

在theano中逐行标准化矩阵

假设我有一个N大小的矩阵,n_i x n_o我想逐行标准化,即每行的总和应为1.我怎么能在theano做到这一点?

动机:使用softmax为我返回错误,所以我尝试通过实现我自己的softmax版本来回避它.

python normalization matrix theano

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

Tensorflow收集矩阵的列非常慢

给定两个矩阵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。这些解决方案根据其性能进行排名:

  1. . 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倍。

    2。


     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倍 …

multiple-columns tensorflow tensor

5
推荐指数
0
解决办法
747
查看次数