Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 取向量的不同幂并保存在txtfile中_Python_Numpy_Save - Fatal编程技术网

Python 取向量的不同幂并保存在txtfile中

Python 取向量的不同幂并保存在txtfile中,python,numpy,save,Python,Numpy,Save,我试着取向量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)并将c^q保存到一个TXT文件中,每个列都是c^q。 我的输出txtfile应该由13列组成(每个

我试着取向量
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)
并将
c^q
保存到一个TXT文件中,每个列都是
c^q
。 我的输出txtfile应该由13列组成(每个
q
一列)。我想我应该使用
np.power(c,q)
函数,但我不知道我必须使用哪个循环来保存所有
q的所有向量

现在我所做的是机械地、低效地解决这个问题:

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)
这不是你想要的,你想要的是列是向量。那就来看看吧

实际上,还有另一种不用循环的方法,就是通过巧妙的广播:

res = c[:, None] ** q[None, :]

然后,您可以保存您的文件,例如使用。我会让你去弄清楚为了得到你想要的保存文件,必须设置哪些参数。

我做得非常机械,效率也非常低:
对于范围内的I(len(c)):c_2=np.power(c,2)c2.append(c_2)
对于
q
的每个值(例如这里我是为
q=2
做的)更新您的问题以显示您的代码。注释不允许格式化。还请提供一个可验证的例子。