首先,我真的很抱歉,如果我发布一个非常愚蠢的问题。我是Numpy的新手。
问题:
场景1:
import numpy as np
data=[1,2,3,4]
type(data)
array=np.array(data)
array
array.ndim
array.shape
输出:
array
Out[63]: array([1, 2, 3, 4])
array.ndim
Out[64]: 1
array.shape
Out[65]: (4,)
我的问题是(4,)是什么意思。这是否意味着它具有4个元素的单行。我们可以说它是具有一行四列的行向量。 如果是,那么在第二种情况下会造成混乱
方案2:
data1 =[[1,2,3,4],[5,6,7]]
array1 =np.array(data)
array1 =array1=np.array(data1)
array1
array1.ndim
array1.shape
输出:
array1
Out[67]: array([[1, 2, 3, 4], [5, 6, 7]], dtype=object)
array1.ndim
Out[68]: 1
array1.shape
Out[69]: (2,)
这里我的问题是array1的答案.shape应该是(7,),因为维度是1。 我想在这里知道,这是多少行和多少列。也是为什么输出为(2,)
答案 0 :(得分:0)
data
是数字列表:
In [166]: data = [1,2,3,4]
arr
是由该列表构成的一维数组-具有4个元素
In [167]: arr = np.array(data)
In [168]: arr
Out[168]: array([1, 2, 3, 4])
In [169]: arr.ndim
Out[169]: 1
In [170]: arr.shape
Out[170]: (4,)
请注意,arr
的显示与原始列表的显示[]
相同。
在谈论一维数组时,请勿尝试使用row
和column
的想法。您不是从列表列表开始的,并且数组没有行。是一天。
(4,)是单个元素元组的Python表示法。
data1
是列表的列表(长度不一):
In [172]: data1 =[[1,2,3,4],[5,6,7]]
In [173]: data1
Out[173]: [[1, 2, 3, 4], [5, 6, 7]]
arr1
是一个包含2个列表的1d数组。请注意object
dtype:
In [174]: arr1 = np.array(data1)
In [175]: arr1
Out[175]: array([list([1, 2, 3, 4]), list([5, 6, 7])], dtype=object)
要获得由7个数字组成的一维数组,我们必须串联子列表:
In [176]: np.hstack(data1)
Out[176]: array([1, 2, 3, 4, 5, 6, 7])
该操作类似于列表联接:
In [177]: data1[0] + data1[1]
Out[177]: [1, 2, 3, 4, 5, 6, 7]
如果子列表的长度相等,那么我们可以制作一个二维数组-2行4列,形状为(2,4):
In [178]: data2 =[[1,2,3,4],[5,6,7,8]]
In [179]: np.array(data2)
Out[179]:
array([[1, 2, 3, 4],
[5, 6, 7, 8]])