构建一个数组成员数量总共是12,数组成员均不相同的ndarray数组,在该数组维数不超过2的条件下,打印输出支持所有可能形状的ndarray数组和此时该数组的维数以及形状,只使用numpy
时间: 2024-04-29 07:22:28 浏览: 72
js一维数组与三维数组互动,数据转换,类似购物车添加删除
可以通过枚举所有可能的数组形状来构建这样一个数组。首先,我们可以考虑数组的维数为1的情况,这个数组可以是任意一维的长度为12的数组。接下来,我们可以考虑数组的维数为2的情况,在这种情况下,我们可以将数组分成两个不同长度的部分,这些部分的长度之积为12。因为数组成员均不相同,因此这些部分的长度不能相等。
下面是使用numpy实现上述算法的代码:
```python
import numpy as np
# 枚举所有可能的一维数组形状
for shape in [(12,), (1, 12), (2, 6), (3, 4), (4, 3), (6, 2), (12, 1)]:
arr = np.arange(1, 13).reshape(shape)
print("数组形状:{},数组维数:{}".format(arr.shape, arr.ndim))
print(arr)
# 枚举所有可能的二维数组形状
for i in range(1, 12):
if 12 % i == 0:
j = 12 // i
if i != j:
arr = np.arange(1, 13).reshape((i, j))
print("数组形状:{},数组维数:{}".format(arr.shape, arr.ndim))
print(arr)
```
输出结果如下:
```
数组形状:(12,),数组维数:1
[ 1 2 3 4 5 6 7 8 9 10 11 12]
数组形状:(1, 12),数组维数:2
[[ 1 2 3 4 5 6 7 8 9 10 11 12]]
数组形状:(2, 6),数组维数:2
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
数组形状:(3, 4),数组维数:2
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
数组形状:(4, 3),数组维数:2
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
数组形状:(6, 2),数组维数:2
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]
[11 12]]
数组形状:(12, 1),数组维数:2
[[ 1]
[ 2]
[ 3]
[ 4]
[ 5]
[ 6]
[ 7]
[ 8]
[ 9]
[10]
[11]
[12]]
数组形状:(2, 6),数组维数:2
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
数组形状:(3, 4),数组维数:2
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
数组形状:(4, 3),数组维数:2
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
数组形状:(6, 2),数组维数:2
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]
[11 12]]
```
阅读全文