Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
numpy一维数组,用于不同长度的列表_Numpy - Fatal编程技术网

numpy一维数组,用于不同长度的列表

numpy一维数组,用于不同长度的列表,numpy,Numpy,首先,如果我发布了一个非常愚蠢的问题,我真的很抱歉。我对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,)的意思是什么。这是

首先,如果我发布了一个非常愚蠢的问题,我真的很抱歉。我对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,)
这里我的问题是数组1的答案。形状应该是(7),因为维度是1。
我想知道这里有多少行和多少列。输出为(2,)

数据的原因也是一个数字列表:

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
的显示与原始列表具有相同的
[]

当谈论1d数组时,不要试图使用
的概念。您没有以列表列表开始,并且该数组没有行。它是1d

(4,)是单元素元组的Python表示法


data1
是一个列表列表(长度不同):

arr1
是一个1d数组,包含2个列表。注意
对象
数据类型:

In [174]: arr1 = np.array(data1)
In [175]: arr1
Out[175]: array([list([1, 2, 3, 4]), list([5, 6, 7])], dtype=object)
要获得7个数字的1d数组,我们必须连接子列表:

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]

如果子列表的长度相等,那么我们可以制作一个2d数组-2行4列,形状(2,4):


谢谢你的快速回复。您能告诉我如何使用numpy创建行和列向量吗。我还想使用行向量的转置函数。遵循同样的模式。同时阅读
形状
重塑
In [177]: data1[0] + data1[1]
Out[177]: [1, 2, 3, 4, 5, 6, 7]
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]])