使用for循环在numpy中填充2D矩阵

Ver*_*ion 6 python matlab numpy

我是一个试图切换到Python的Matlab用户.

使用Numpy,如何填充for循环内的矩阵?

例如,矩阵有2列,循环的每次迭代都会for添加一行新数据.

在Matlab中,这将是:

n = 100;
matrix = nan(n,2); % Pre-allocate matrix
for i = 1:n
    matrix(i,:) = [3*i, i^2];
end
Run Code Online (Sandbox Code Playgroud)

R. *_*hna 12

首先你必须使用numpy

$ pip install numpy
Run Code Online (Sandbox Code Playgroud)

然后以下应该工作

import numpy as np    
n = 100
matrix = np.zeros((n,2)) # Pre-allocate matrix
for i in range(1,n):
    matrix[i,:] = [3*i, i**2]
Run Code Online (Sandbox Code Playgroud)

更快的选择:

col1 = np.arange(3,3*n,3)
col2 = np.arange(1,n)
matrix = np.hstack((col1.reshape(n-1,1), col2.reshape(n-1,1)))
Run Code Online (Sandbox Code Playgroud)

Divakar建议,速度更快

I = np.arange(n)
matrix = np.column_stack((3*I, I**2))
Run Code Online (Sandbox Code Playgroud)

  • 或者'I = np.arange(n)`然后是'np.column_stack((3 * I,I ** 2))` (2认同)