python中numpy数组维度的问题

ndarray数组有严格的对齐要求,要求每个维度的列都要分别相同,若某一维度的数组中某个元素内部的列数和其他元素内部的列数不一致,则该维度为最小维度。
即:在用列表转换为数组的过程中,本来要转换为一个三维数组,但是由于其第二维的某个元素的列数和其他元素的列数不一致,导致最终转换的结果为一维数组

示例:
定义一个3x3的列表,成功转换为一个3x3的数组

import numpy as np
list = [[[1,2,3],[4,5,6],[7,8,9]],[[11,22,33],[44,55,66],[77,88,99]],[[111,222,333],[444,555,666],[777,888,999]]]
array = np.array(list)
print(array)

结果:

[[[  1   2   3]
  [  4   5   6]
  [  7   8   9]]

 [[ 11  22  33]
  [ 44  55  66]
  [ 77  88  99]]

 [[111 222 333]
  [444 555 666]
  [777 888 999]]]

若由于某些特殊原因导致列表的第二维少了个元素,则最终结果将转换为一维数组,如:

import numpy as np
list = [[[4,5,6],[7,8,9]],[[11,22,33],[44,55,66],[77,88,99]],[[111,222,333],[444,555,666],[777,888,999]]]
array = np.array(list)
print(array)

结果:

[list([[4, 5, 6], [7, 8, 9]])
 list([[11, 22, 33], [44, 55, 66], [77, 88, 99]])
 list([[111, 222, 333], [444, 555, 666], [777, 888, 999]])]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值