我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目.
例如:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
是否有内置函数可以做到这一点?
让我们来:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)
并不是
r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)
非常感激
有没有相当于Python的zip函数的javascript?也就是说,给定多个相等长度的数组会创建一对数组.
例如,如果我有三个如下所示的数组:
var array1 = [1, 2, 3];
var array2 = ['a','b','c'];
var array3 = [4, 5, 6];
Run Code Online (Sandbox Code Playgroud)
输出数组应该是:
var output array:[[1,'a',4], [2,'b',5], [3,'c',6]]
Run Code Online (Sandbox Code Playgroud) 我使用Python和NumPy并且在"转置"方面存在一些问题:
import numpy as np
a = np.array([5,4])
print(a)
print(a.T)
Run Code Online (Sandbox Code Playgroud)
调用a.T不是转置数组.如果a是例如[[],[]]然后它正确转置,但我需要转置[...,...,...].
我有一个数组数组,如:
[
[1,2,3],
[1,2,3],
[1,2,3],
]
Run Code Online (Sandbox Code Playgroud)
我想转置它以获得以下数组:
[
[1,1,1],
[2,2,2],
[3,3,3],
]
Run Code Online (Sandbox Code Playgroud)
使用循环以编程方式执行此操作并不困难:
function transposeArray(array, arrayLength){
var newArray = [];
for(var i = 0; i < array.length; i++){
newArray.push([]);
};
for(var i = 0; i < array.length; i++){
for(var j = 0; j < arrayLength; j++){
newArray[j].push(array[i][j]);
};
};
return newArray;
}
Run Code Online (Sandbox Code Playgroud)
然而,这看起来很笨重,我觉得应该有一种更简单的方法.在那儿?
我有一个巨大的制表符分隔文件格式如下
X column1 column2 column3
row1 0 1 2
row2 3 4 5
row3 6 7 8
row4 9 10 11
Run Code Online (Sandbox Code Playgroud)
我想仅使用bash命令以有效的方式转置它(我可以编写十个左右的Perl脚本来执行此操作,但执行速度应该比本机bash函数慢).所以输出应该是这样的
X row1 row2 row3 row4
column1 0 3 6 9
column2 1 4 7 10
column3 2 5 8 11
Run Code Online (Sandbox Code Playgroud)
我想到了这样的解决方案
cols=`head -n 1 input | wc -w`
for (( i=1; i <= $cols; i++))
do cut -f $i input | tr $'\n' $'\t' | sed -e "s/\t$/\n/g" >> output
done
Run Code Online (Sandbox Code Playgroud)
但它很慢,似乎不是最有效的解决方案.我在这篇文章中看到了vi的解决方案,但它仍然过慢.有什么想法/建议/精彩的想法吗?:-)
我有一个矩阵(相对较大),我需要转置.例如假设我的矩阵是
a b c d e f
g h i j k l
m n o p q r
Run Code Online (Sandbox Code Playgroud)
我希望结果如下:
a g m
b h n
c I o
d j p
e k q
f l r
Run Code Online (Sandbox Code Playgroud)
最快的方法是什么?
In [28]: arr = np.arange(16).reshape((2, 2, 4))
In [29]: arr
Out[29]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
In [32]: arr.transpose((1, 0, 2))
Out[32]:
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
Run Code Online (Sandbox Code Playgroud)
当我们将一个整数元组传递给transpose()函数时,会发生什么?
具体来说,这是一个3D数组:当我传递轴的元组时,NumPy如何转换数组(1, 0 ,2)?你能解释一下这些整数所指的行或列吗?在NumPy的背景下,轴数是多少?
我有下表,它为每个用户提供了多个电子邮件地址.

我需要将其展平为用户查询的列.根据创建日期向我提供"最新"3个电子邮件地址.
user.name | user.id | email1 | email2 | email3**
Mary | 123 | mary@gmail.com | mary@yahoo.co.uk | mary@test.com
Joe | 345 | joe@gmail.com | [NULL] | [NULL]
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的表的某些列转换为行.我正在使用Python和Spark 1.5.0.这是我的初始表:
+-----+-----+-----+-------+
| A |col_1|col_2|col_...|
+-----+-------------------+
| 1 | 0.0| 0.6| ... |
| 2 | 0.6| 0.7| ... |
| 3 | 0.5| 0.9| ... |
| ...| ...| ...| ... |
Run Code Online (Sandbox Code Playgroud)
我想有这样的事情:
+-----+--------+-----------+
| A | col_id | col_value |
+-----+--------+-----------+
| 1 | col_1| 0.0|
| 1 | col_2| 0.6|
| ...| ...| ...|
| 2 | col_1| 0.6|
| 2 | col_2| 0.7|
| ...| ...| ...|
| 3 | col_1| 0.5|
| 3 | …Run Code Online (Sandbox Code Playgroud)