相当于 Julia 中的 numpy.c_

Eri*_*rik 3 arrays algorithm matrix julia

嗨,我正在阅读这本书https://nnfs.io/但使用 JuliaLang (更好地了解该语言并更频繁地使用它是一个自我挑战......而不是在 Python 中做同样的事情......)

我发现书中的一部分他们自定义编写了一些函数,我需要在 JuliaLang 中重新创建它......

来源: https: //cs231n.github.io/neural-networks-case-study/

Python

N = 100 # number of points per class
D = 2 # dimensionality
K = 3 # number of classes
X = np.zeros((N*K,D)) # data matrix (each row = single example)
y = np.zeros(N*K, dtype='uint8') # class labels
for j in range(K):
  ix = range(N*j,N*(j+1))
  r = np.linspace(0.0,1,N) # radius
  t = np.linspace(j*4,(j+1)*4,N) + np.random.randn(N)*0.2 # theta
  X[ix] = np.c_[r*np.sin(t), r*np.cos(t)]
  y[ix] = j
# lets visualize the data:
plt.scatter(X[:, 0], X[:, 1], c=y, s=40, cmap=plt.cm.Spectral)
plt.show()
Run Code Online (Sandbox Code Playgroud)

到目前为止我的朱莉娅版本......

N = 100 # Number of points per class
D = 2   # Dimensionality
K = 3   # Number of classes

X = zeros((N*K, D))
y = zeros(UInt8, N*K)


# See https://docs.julialang.org/en/v1/base/math/#Base.range

for j in range(0,length=K)
    ix = range(N*(j), length = N+1)
    
    radius = LinRange(0.0, 1, N)
    theta = LinRange(j*4, (j+1)*4, N) + randn(N)*0.2
    X[ix] = ????????

end
Run Code Online (Sandbox Code Playgroud)

注意这个???????区域,因为我现在正在尝试破译 Julia 是否有这个 numpy 函数的等价函数

https://numpy.org/doc/stable/reference/ generated/numpy.c_.html

感谢任何帮助..或者只是告诉我是否需要自己写一些东西

Prz*_*fel 5

这是一个特殊的对象,为列连接提供良好的语法。在 Julia 中,这只是内置于语言中,因此您可以执行以下操作:

\n
julia> a=[1,2,3];        \n                         \njulia> b=[4,5,6];        \n                                                \njulia> [a b]             \n3\xc3\x972 Matrix{Int64}:       \n 1  4                    \n 2  5                    \n 3  6                                          \n
Run Code Online (Sandbox Code Playgroud)\n

对于您的情况,朱利安等效项np.c_[r*np.sin(t), r*np.cos(t)]应该是:

\n
[r .* sin.(t)  r .* cos.(t)]\n
Run Code Online (Sandbox Code Playgroud)\n

要了解 Python 的动机,您还可以查看:\n numpy.r_ 不是函数。它是什么?

\n