我在函数r_的numpy文档中阅读了以下内容:
字符串整数指定堆叠多个逗号分隔数组的轴.由两个逗号分隔的整数组成的字符串允许指示强制每个条目的最小维数,作为第二个整数(要连接的轴仍然是第一个整数).
他们给出了这个例子:
>>> np.r_['0,2', [1,2,3], [4,5,6]] # concatenate along first axis, dim>=2
array([[1, 2, 3],
[4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)
我不遵循,字符串'0,2'指示numpy做什么?
除了上面的链接,是否有另一个网站有更多关于此功能的文档?
在这种情况下,使用像numpy.r_或numpy.c_这样的对象比使用concatenate或vstack这样的函数更好(更高效,更合适)?
我试图理解程序员编写的代码:
return np.r_[0.0, 1d_array, 0.0] == 2
Run Code Online (Sandbox Code Playgroud)
where 1d_array是一个数组,其值可以是0,1或2.为什么不使用np.concatenate(例如)?喜欢 :
return np.concatenate([[0.0], 1d_array, [0.0]]) == 2
Run Code Online (Sandbox Code Playgroud)
它更具可读性,显然它做同样的事情.
如何合并不同元素的混合(matlab风格)numpy?
[array([ 0.]), 0.0, 0.0011627, 0.0, 2.69, 0.0, array([ 3.8269, 7.0184]), array([ 4.4e-16, 2.1e+00])]
(我尝试过np.concatenate,但显然它只需要数组作为输入).基本上,我想通过索引动态地连接矢量中的元素.我试过了:
V = np.array([1,2,3,4,5,6])
Y = np.array([7,8,9,10,11,12])
Z = np.array([V[0:2],Y[0],V[3],Y[1:3],V[4:],Y[4:]])
Run Code Online (Sandbox Code Playgroud)
它工作,但内部有数组元素.我只想要一个平面的数字向量(Matlab风格),后来我用一堆这些向量做了一个矩阵(称为RES).即使是简单的
np.savetxt('TT',RES,fmt='%1.1e')
Run Code Online (Sandbox Code Playgroud)
失败,因为它期望浮动而不是内部的数组.
猜猜这应该很简单.np.hstack做的工作.但是有没有其他简单的方法来做Matlab样式索引和向量和标量的组合?