取向量的不同幂并保存在 txt 文件中
take different powers of a vector and save in txtfile
我正在尝试对向量进行不同的幂运算 c
,然后将这些新向量中的每一个保存在一个文本文件中,其中每一列都是一个向量。
例如,数组 c
有元素:
0.836205
0.394242
0.705833
0.361308
0.0597318
-0.0345422
0.864248
0.811093
0.409232
0.150628
0.706122
0.854921
我想将 c
提升为 q=np.arange(-1,5.5,0.5)
的幂,并将所有 q
的 c^q
保存在一个 txt 文件中,其中每一列都是 c^q
.
我的输出 txt 文件应由 13 列组成(每个 q
一列)。我想我应该使用 np.power(c,q)
函数,但我不知道我必须使用哪个循环来保存所有 q's
的所有向量
目前我所做的是非常机械和非常低效地解决它:
for i in range(len(c)):
c_2=np.power(c,2)
c2.append(c_2)
对于 q 的每个值(这里例如我为 q=2
做的)。
预先感谢您的帮助!
首先你循环遍历数组 c 并取每个元素的平方:
for i in range(len(c)):
c_2=np.power(c,2)
c2.append(c_2)
但是 numpy 提供了自动执行此操作的可能性:
c = np.array([1,2,3])
c2 = np.power(c, 2)
# returns "array([1, 4, 9], dtype=int32)"
所以你可以省去为每个元素做的工作。下一个合乎逻辑的步骤是为 q
中的每个元素计算幂。所以你可以在 q
上循环并利用 c
的力量并附加它:
q = [2,3,4]
res = []
for i in q:
res.append(np.power(c, i))
res = np.array(res)
# afterwards res is just
# array([[ 1, 4, 9],
# [ 1, 8, 27],
# [ 1, 16, 81]], dtype=int32)
这不是您想要的,您希望列是向量。所以看看 np.transpose
.
实际上还有另一种方法可以通过巧妙的广播来实现它而无需循环:
res = c[:, None] ** q[None, :]
然后您可以使用 np.savetxt
保存您的文件。我会让你弄清楚必须设置哪些参数才能获得你想要的已保存文件。
我正在尝试对向量进行不同的幂运算 c
,然后将这些新向量中的每一个保存在一个文本文件中,其中每一列都是一个向量。
例如,数组 c
有元素:
0.836205
0.394242
0.705833
0.361308
0.0597318
-0.0345422
0.864248
0.811093
0.409232
0.150628
0.706122
0.854921
我想将 c
提升为 q=np.arange(-1,5.5,0.5)
的幂,并将所有 q
的 c^q
保存在一个 txt 文件中,其中每一列都是 c^q
.
我的输出 txt 文件应由 13 列组成(每个 q
一列)。我想我应该使用 np.power(c,q)
函数,但我不知道我必须使用哪个循环来保存所有 q's
目前我所做的是非常机械和非常低效地解决它:
for i in range(len(c)):
c_2=np.power(c,2)
c2.append(c_2)
对于 q 的每个值(这里例如我为 q=2
做的)。
预先感谢您的帮助!
首先你循环遍历数组 c 并取每个元素的平方:
for i in range(len(c)):
c_2=np.power(c,2)
c2.append(c_2)
但是 numpy 提供了自动执行此操作的可能性:
c = np.array([1,2,3])
c2 = np.power(c, 2)
# returns "array([1, 4, 9], dtype=int32)"
所以你可以省去为每个元素做的工作。下一个合乎逻辑的步骤是为 q
中的每个元素计算幂。所以你可以在 q
上循环并利用 c
的力量并附加它:
q = [2,3,4]
res = []
for i in q:
res.append(np.power(c, i))
res = np.array(res)
# afterwards res is just
# array([[ 1, 4, 9],
# [ 1, 8, 27],
# [ 1, 16, 81]], dtype=int32)
这不是您想要的,您希望列是向量。所以看看 np.transpose
.
实际上还有另一种方法可以通过巧妙的广播来实现它而无需循环:
res = c[:, None] ** q[None, :]
然后您可以使用 np.savetxt
保存您的文件。我会让你弄清楚必须设置哪些参数才能获得你想要的已保存文件。