小编rob*_*ert的帖子

Numpy仅按行重排多维数组,保持列顺序不变

我怎样才能在Python中按行对多维数组进行混洗(所以不要随机乱洗).

我正在寻找最有效的解决方案,因为我的矩阵非常庞大.是否也可以在原始阵列上高效工作(以节省内存)?

例:

import numpy as np
X = np.random.random((6, 2))
print(X)
Y = ???shuffle by row only not colls???
print(Y)
Run Code Online (Sandbox Code Playgroud)

我现在期待的是原始矩阵:

[[ 0.48252164  0.12013048]
 [ 0.77254355  0.74382174]
 [ 0.45174186  0.8782033 ]
 [ 0.75623083  0.71763107]
 [ 0.26809253  0.75144034]
 [ 0.23442518  0.39031414]]
Run Code Online (Sandbox Code Playgroud)

输出混乱行不cols例如:

[[ 0.45174186  0.8782033 ]
 [ 0.48252164  0.12013048]
 [ 0.77254355  0.74382174]
 [ 0.75623083  0.71763107]
 [ 0.23442518  0.39031414]
 [ 0.26809253  0.75144034]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy shuffle

39
推荐指数
4
解决办法
6万
查看次数

为什么Python/Numpy需要矩形/矢量点积的行向量?

假设我们想要计算矩阵和列向量的点积:

矩阵点矢量

所以在Numpy/Python中我们走了:

a=numpy.asarray([[1,2,3], [4,5,6], [7,8,9]])
b=numpy.asarray([[2],[1],[3]])
a.dot(b)
Run Code Online (Sandbox Code Playgroud)

结果是:

数组([[13],[31],[49]])

到目前为止,这么好,但为什么这也有效?

b=numpy.asarray([2,1,3])
a.dot(b)
Run Code Online (Sandbox Code Playgroud)

结果是:

数组([13,31,49])

我希望[2,1,3]是行向量(需要转置才能应用点积),但Numpy似乎默认将数组视为列向量(在矩阵乘法的情况下)?

这是如何运作的?

编辑:

为什么:

b=numpy.asarray([2,1,3])
b.transpose()==b
Run Code Online (Sandbox Code Playgroud)

因此矩阵点矢量数组确实有效(因此它将其视为列向量),但是其他操作(转置)不起作用.这不是真的一致设计不是吗?

python numpy numpy-broadcasting

5
推荐指数
1
解决办法
1002
查看次数

Numpy:从非常大的内存映射Numpy Array中删除列

假设我有一个非常大的numpy内存映射数组:

fp = np.memmap("bigarray.mat", dtype='float32', mode='w+', shape=(5000000,5000))
Run Code Online (Sandbox Code Playgroud)

现在经过一些操作等,我想删除第10列:

fp = np.delete(fp,10,1)
Run Code Online (Sandbox Code Playgroud)

这会导致内存不足错误,因为(??)返回的数组是内存数组.我想要的是纯内存映射删除操作.

在完全内存映射模式下删除列的最有效方法是什么?

python memory arrays numpy out-of-memory

5
推荐指数
1
解决办法
541
查看次数

大熊猫根据联接将列从一个数据框添加到另一个数据框

假设我有2个数据框。我想基于列查找将数据框1的列添加到数据框2。如果无法进行联接,则需要在额外的列中使用某个常数(以便可以对此进行过滤)。

图形化:

在此处输入图片说明

码:

import pandas as pd
import numpy as np

data = np.array([['','Col1','Col2'],
                ['Row1','2','TWO'],
                ['Row2','1','ONE']]
            )

data2 = np.array([['','Col3','Col4'],
                ['Row1','1','T1'],
                ['Row2','2','T2'],
                ['Row3','3','T3']]
            )

df = pd.DataFrame(data=data[1:,1:],
                  index=data[1:,0],
                  columns=data[0,1:])

df2 = pd.DataFrame(data=data2[1:,1:],
                  index=data2[1:,0],
                  columns=data2[0,1:])

result_df = df2 + join Col2 based on df2.Col3 = df.Col1. Add certain string constant if join fails. 

print(df)
print(df2)
print(result_df)
Run Code Online (Sandbox Code Playgroud)

python join dataframe pandas

5
推荐指数
2
解决办法
6346
查看次数

为什么XPath不洁净?为什么谓词中不需要text()?

假设我有:

<A>
  <B>C</B>
  <D>E</D>
</A>
Run Code Online (Sandbox Code Playgroud)

然后我可以输出B元素(包括标签):

//B
Run Code Online (Sandbox Code Playgroud)

哪个会回归

<B>C</B>
Run Code Online (Sandbox Code Playgroud)

但是为什么谓词中不需要text()? 以下两行给出相同的输出:

/A[B = 'C']/D
/A[B/text() = 'C']/D
Run Code Online (Sandbox Code Playgroud)

如果XPATH是干净的构造我会期望它(或在某种其他元素结构):

/A[B = <B>C></B>]/D
Run Code Online (Sandbox Code Playgroud)

和:

/A[B/text()='C']/D
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个理由,为什么输出需要text(),但谓词不需要它?

xml xpath

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

Javascript:在未定义/空迭代器上捕获 for 循环的最佳方法?

考虑下一个例子。是否有不需要这个 if 语句较短版本

let d = null  
if (d) { 
  for ( const z of d ) { 
   //
  } 
} 
Run Code Online (Sandbox Code Playgroud)

例如,可能是这样的:

let d = null  
for ( d && const z of d ) { 
 //
} 
Run Code Online (Sandbox Code Playgroud)

javascript for-loop if-statement ecmascript-6

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

带有 Web GUI 的免费 G​​IT 服务器 BitBucket/GitHub

在工作中我使用 BitBucket。我想要在家里将类似的东西部署在我的 Linux 服务器上。所以我正在寻找:

  • 只需要1 或 2 个用户。
  • 可在Linux上部署的GIT服务器
  • 一个精美的 Web GUI,用于可视化分支并执行其他操作(创建存储库、分支、合并、统计)。
  • 详细记录了如何在 Linux/Ubuntu 上运行这一切。
  • 免费/低成本。

我有什么选择。到目前为止,我发现 BitBucket Server 的价格为 10 美元/年。还有什么其他选择?

linux git github bitbucket bitbucket-server

0
推荐指数
1
解决办法
5652
查看次数