Python 如何生成二维numpy数组?
我正试图在生成器的帮助下生成2d numpy数组:Python 如何生成二维numpy数组?,python,numpy,generator,Python,Numpy,Generator,我正试图在生成器的帮助下生成2d numpy数组: x = [[f(a) for a in g(b)] for b in c] 如果我尝试这样做: x = np.array([np.array([f(a) for a in g(b)]) for b in c]) y = x[:, 1] 一、 如预期的那样,获取np.array的np.array。但我想要的不是这个,而是ndarray,所以我可以得到,例如,列的方式如下: x = np.array([np.array([f(a) for a
x = [[f(a) for a in g(b)] for b in c]
如果我尝试这样做:
x = np.array([np.array([f(a) for a in g(b)]) for b in c])
y = x[:, 1]
一、 如预期的那样,获取np.array的np.array。但我想要的不是这个,而是ndarray,所以我可以得到,例如,列的方式如下:
x = np.array([np.array([f(a) for a in g(b)]) for b in c])
y = x[:, 1]
所以,我很好奇是否有一种方法能以这种方式产生它
当然,创建所需大小的npdarray并用所需的值填充它是可能的,但我想在一行代码中找到这样做的方法 这是有效的:
a = [[1, 2, 3], [4, 5, 6]]
nd_a = np.array(a)
因此,这也应该起作用:
nd_a = np.array([[x for x in y] for y in a])
要创建一个新的阵列,这似乎是一条路要走
将numpy导入为np
a=np.0(形状=(x,y))
您还可以设置一个数据类型来合理地分配它
np.zero(shape=(5,2),dtype=np.uint8)
数组([[0,0],
[0, 0],
[0, 0],
[0, 0],
[0,0]],dtype=uint8)
>>>np.zero(shape=(5,2),dtype=“datetime64[ns]”)
数组(['1970-01-01T00:00:00.000000000','1970-01-01T00:00:00.000000000',',
[1970-01-01T00:00:00.000000000',1970-01-01T00:00:00.000000000'],
[1970-01-01T00:00:00.000000000',1970-01-01T00:00:00.000000000'],
[1970-01-01T00:00:00.000000000',1970-01-01T00:00:00.000000000'],
[1970-01-01T00:00:00.000000000',1970-01-01T00:00:00.000000000'],
dtype='datetime64[ns]')
另见
np.shape
或诸如此类的东西吗?f(a)
和g(b)
到底做了什么?如果它们生成数字,您的代码应该可以工作:这是初始化2d numpy数组的正确方法(numpy通常足够聪明,可以将数组的数组转换为ndarray)什么是data['Name']
like?最好能给我们举个例子,让我们可以插入并运行。np的形状是什么?我在代码中没有看到任何生成器,只列出理解。