python - 转换没有循环的numpy数组
问题描述
我有一个大小为 N 的 1D numpy 数组,我想将其转换为大小为 N*N 的 numpy 数组,其中每个元素由原始矩阵中的两个元素组成,因此原始数组中每个可能的条目组合是在最终矩阵中,例如
the input matrix
a = [1,2,3]
the result I would like
b = [[1,1],[1,2],[1,3],
[2,1],[2,2],[2,3],
[3,1],[3,2],[3,3]]
但是问题是我不能使用任何循环来做到这一点,只能使用 numpy、scipy 和 matlpotlib 的内置函数这可能吗?
解决方案
递归意大利面:
def recursive_add_outer(array, newArr, iterator):
if(iterator < len(array)):
recursive_add_inner(array, newArr, iterator, 0)
iterator += 1
recursive_add_outer(array, newArr, iterator)
else:
print(newArr)
def recursive_add_inner(array, newArr, iterator, inneriterator):
if inneriterator < len(array):
item = []
item.append(array[iterator])
item.append(array[inneriterator])
newArr.append(item)
inneriterator += 1
recursive_add_inner(array, newArr, iterator, inneriterator)
else:
return newArr
def main():
a = [1,2,3]
#target: b = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]]
recursive_add_outer(a, [], 0)
if __name__ == '__main__':
main()
推荐阅读
- java - 模拟方法 bean 以避免 NullPointerException
- asp.net - 在 .NET Framework 和 .NET Core 之间共享类
- python - 在python中计算全宽半最大值
- reactjs - 标记在 mapboxgl react 项目中显示在地图之外
- javascript - 如何使用复选框 dom javascript 创建数据集
- vue.js - Nuxt/axios 模块设置在方法中不起作用
- python - 当我尝试使用 SublimeREPL 运行 Python 脚本时,Sublime Text 3 显示 EOFError()
- google-chrome-extension - 测试使用 chrome 存储 API 的 chrome 扩展更新的最佳方法?
- html - 我的联系表格在切换到移动版本时会产生多余的边距
- c++ - BuildMacro 元素在 Visual Studio 属性和项目中的作用是什么?