python中用numpy.array()生成数组的机制

2022-10-19 08:17:38

思考源于这个错误,在一次简单的类型转换X_train1 = np.array(X_train) 中出现了如下问题:



查阅了一个博客,得到了如下动态生成多维数组的示例,稍加修改,如下所示,运行成功。

# coding:utf-8

# 使用Python3中的print函数
from __future__ import print_function
import numpy as np

arr = []

# 基本思想是在list中动态添加list,每个list可以嵌套,这样就可以形成多维数组了
# arr中保存的而是row的集合,row中保存的是col的集合
# 这是一个3×3×2的三维数组
for k in range(4):
    hei=[]
    for i in range(3):
        row = []
        for j in range(3):
            col = []
            col.append(i + j)
            col.append(i * j)
            row.append(col)
        hei.append(row)
    arr.append(hei)

print(arr)
            
a=np.array(arr)
a.shape

于是思考Xtrain的结构,测试如下:

print(type(X_train))
print(type(X_train[0]))
print(type(X_train[0][0]))
print(type(X_train[0][0][0]))
print('asdasdasdadsdasd')
print(len(X_train))
print(len(X_train[0]))
print(len(X_train[0][0]))
print(len(X_train[0][0][0]))
print('asdasdasdadsdasd')
print(type(arr))
print(type(arr[0]))
print(type(arr[0][0]))
print(type(arr[0][0][0]))
print('asdasdasdadsdasd')
print(len(arr))
print(len(arr[0]))
print(len(arr[0][0]))
print(len(arr[0][0][0]))

结果如下:


差别就是如果要多维度的生成array必须是嵌套的list,不知道机制是不是这样的, 如果有人知道官方解释就好了。

  • 作者:SiyataMa
  • 原文链接:https://blog.csdn.net/hongchuhua2132/article/details/80686045
    更新时间:2022-10-19 08:17:38