python - 使用 numpy 元组中的值创建矩阵

标签 python python-2.7 numpy matrix

我正在尝试创建一个矩阵,其值基于 x,y我存储在元组中的值。我使用循环来迭代元组并对数据执行简单的计算:

import numpy as np

# Trying to fit quadratic equation to the measured dots

N = 6
num_of_params = 3

# x values
x = (1,4,3,5,2,6)

# y values
y = (3.96, 24.96,14.15,39.8,7.07,59.4)

# X is a matrix N * 3 with the x values to the power of {0,1,2}
X = np.zeros((N,3))
Y = np.zeros((N,1))

print X,"\n\n",Y

for i in range(len(x)):
    for p in range(num_of_params):
        X[i][p] = x[i]**(num_of_params - p - 1)
    Y[i] = y[i]

print "\n\n"
print X,"\n\n",Y

这可以通过更简单的方式实现吗?我正在寻找某种方法来初始化矩阵,例如 X = np.zeros((N,3), read_values_from = x)

这可能吗?还有其他简单的方法吗?

Python 2.7

最佳答案

x 的扩展数组版本至2D沿着第二个使用 np.newaxis/None 的单例暗淡(长度=1 的暗淡) 。这让我们可以利用 NumPy broadcasting 获取 2D以矢量化方式输出。 y 的类似理念.

因此,实现将是 -

X = np.asarray(x)[:,None]**(num_of_params - np.arange(num_of_params)  - 1)
Y = np.asarray(y)[:,None]

或者使用 np.power 的内置外部方法获取X它负责底层的数组转换 -

X = np.power.outer(x, num_of_params - np.arange(num_of_params)  - 1)

或者,对于 Y ,使用np.expand_dims -

Y = np.expand_dims(y,1)

关于python - 使用 numpy 元组中的值创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47250754/

相关文章:

python - Pandas 错误 : 'DataFrame' object has no attribute 'loc'

python - 本地化 : django-admin compilemessages skip venv

python - 如何调整 N 维 numpy 图像的大小?

python - 将 pybrain 预测的输出作为数组

python - 打开已声明为 .mo 扩展名的 .txt 文件

python - 将列表拆分为不均匀的元组

mysql - _mysql_exceptions.OperationalError 卡住 wxPython 程序

python - 成员每组出现一次的唯一对组

python - Argparse:可选参数,不同位置参数不同

python - 交替的 SQL 查询