【发布时间】:2020-12-28 19:30:00
【问题描述】:
我想创建一个矩阵,其列数与给定输入的列数一样多(例如:p)。这些列将是第一个数组的幂值。我正在使用这样的数据集:
with open("dataset.csv") as f:
dataset = list(csv.reader(f))
for a in dataset:
arr = np.append(arr, int(a[0])) # arr = 1,1,2,3,3,3,3...
one_list = np.append(one_list, 1)
x = np.column_stack((one_list, arr))
如果 p=3,我想要这样的矩阵:
x = [[1, 1, 1, 1]
[1, 1, 1, 1]
[1, 2, 4, 8]
[1, 3, 9, 27]
...]
更新:我是这样解决的:
a = 2
p = 3
for i in range(p-1):
arr1 = np.power(arr, a)
a += 1
x = np.column_stack((x, arr1))
结果是正确的,但如果我输入 p=4 或更多,它看起来像这样:
[[1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00
1.0000e+00]
[1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00
1.0000e+00]
[1.0000e+00 2.0000e+00 4.0000e+00 8.0000e+00 1.6000e+01 3.2000e+01
6.4000e+01]
[1.0000e+00 2.0000e+00 4.0000e+00 8.0000e+00 1.6000e+01 3.2000e+01
6.4000e+01]
[1.0000e+00 2.0000e+00 4.0000e+00 8.0000e+00 1.6000e+01 3.2000e+01
6.4000e+01]...
我怎样才能有一个没有我上面提到的所有这些零的矩阵?任何帮助表示赞赏,谢谢
【问题讨论】:
-
你尝试了什么,为什么失败了?我看到标签
numpy- 看起来像是广播练习。 -
已编辑,可以看我的实现
-
感谢您添加代码。你能解释一下,它有什么问题吗?它会产生错误的结果吗?
-
它会产生一个奇怪的矩阵,它看起来不像我想要的示例输出。有像 43046721、65536 这样的值。我不知道它们来自哪里......
-
写你的更新:
a不需要使用i代替。确保在 for 循环之前将arr和x初始化为某个默认值。你问为什么你的数组如果浮点数用指数表示法表示?