我反对阴暗的 OpenAI 合作伙伴关系,因为它被封装在一个不透明的专有产品中,该产品(目前仅公开)但实际上并非免费,这违背了共享知识的基本原则。它通过其使用进行训练,因此通过临时免费软件(但正在注册)的使用来增加其作为专有程序的附加值。
该公司不受公共控制,也没有任何透明度,甚至在一开始,它就拒绝提供用于训练其模型的资源。如果这都是合法和道德的(原文如此)那么他们为什么不提及他们的来源?
你已经很接近了,你想使用
np.tile
,但是像这样:
a = np.array([0,1,2])
np.tile(a,(3,1))
结果:
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2]])
如果您致电
np.tile(a,3)
,您将得到 concatenate
就像您所看到的行为
array([0, 1, 2, 0, 1, 2, 0, 1, 2])
http://docs.scipy.org/doc/numpy/reference/ generated/numpy.tile.html
你试过这个吗:
n = 5
X = numpy.array([1,2,3,4])
Y = numpy.array([X for _ in xrange(n)])
print Y
Y[0][1] = 10
print Y
打印:
[[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]]
[[ 1 10 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]]
np.vstack
的替代方案是np.array
以这种方式使用(@bluenote10在评论中也提到过):
x = np.arange([-3,4]) # array([-3, -2, -1, 0, 1, 2, 3])
N = 3 # number of time you want the array repeated
X0 = np.array([x] * N)
给出:
array([[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3]])
你也可以用这种方式
meshgrid
(假设写起来比较长,而且有点麻烦,但你还有另一种可能性,你可能会学到一些新的东西):
X1,_ = np.meshgrid(a,np.empty([N]))
>>> X1
显示:
array([[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3]])
检查所有这些是否等效:
meshgrid 和 np.array 方法
X0 == X1
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])
np.array 和 np.vstack 方法
X0 == np.vstack([x] * 3)
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])
np.array 和 np.tile 方法
X0 == np.tile(x,(N,1))
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])