如何在Python中将交替三角函数添加到数组中?

如何在Python中将交替三角函数添加到数组中?,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,因此,我想向python中给定大小的数组中添加交替的Cos和Tan函数。例如,我想为每一行添加一个大小为(10,5)的numpy数组,(Tan(a),Cos(a),Tan(a),Cos(a),Tan(a))。有人能提供一个从哪里开始的提示吗 我试着在计数器小于5的条件下设置一个使用while循环的计数器,但这似乎不起作用。非常感谢您的建议。您可以快速浏览转置的numpy数组和三角函数(使用列表理解将它们与数组形状匹配),我的原始尝试: import numpy as np a = np.ara

因此,我想向python中给定大小的数组中添加交替的Cos和Tan函数。例如,我想为每一行添加一个大小为(10,5)的numpy数组,(Tan(a),Cos(a),Tan(a),Cos(a),Tan(a))。有人能提供一个从哪里开始的提示吗


我试着在计数器小于5的条件下设置一个使用while循环的计数器,但这似乎不起作用。非常感谢您的建议。

您可以快速浏览转置的numpy数组和三角函数(使用列表理解将它们与数组形状匹配),我的原始尝试:

import numpy as np

a = np.arange(50).reshape(10,5)
b = [([np.tan,np.cos]*(round(a.shape[1]//2+1)))[:-1] if a.shape[1] % 2 != 0 else [np.tan,np.cos]*(round(a.shape[1]/2))]
a = np.array([y(x) for x,y in zip(a.T,*b)])
解决方案 既然你要求替换,我想给出一个更一般的答案,包括三种替换:

  • 交替

  • 交替
    这是你在寻找的东西吗

    import numpy as np
    import math
    x=np.array([x for x in range(50)]).reshape(10,5)
    y=x.copy()
    for i in range(x.shape[0]):
        y[i][0]=math.tan(x[i][0])
        y[i][1]=math.cos(x[i][1])
        y[i][2]=math.tan(x[i][2])
        y[i][3]=math.cos(x[i][3])
        y[i][4]=math.tan(x[i][4])
    print(x)
    print(y)
    
    
    
    
    [[ 0  1  2  3  4]
     [ 5  6  7  8  9]
     [10 11 12 13 14]
     [15 16 17 18 19]
     [20 21 22 23 24]
     [25 26 27 28 29]
     [30 31 32 33 34]
     [35 36 37 38 39]
     [40 41 42 43 44]
     [45 46 47 48 49]]
    
    [[ 0  0 -2  0  1]
     [-3  0  0  0  0]
     [ 0  0  0  0  7]
     [ 0  0  3  0  0]
     [ 2  0  0  0 -2]
     [ 0  0 -3  0  0]
     [-6  0  0  0  0]
     [ 0  0  0  0  3]
     [-1  0  2  0  0]
     [ 1  0  0  0 -3]]
    
    像这样的

    arr[:, ::2] = np.tan(arr[:, ::2])
    arr[:, 1::2] = np.cos(arr[:, 1::2])
    

    我大胆地假设你不太熟悉 Stand符号和索引< <强> >,所以你可以考虑浏览文档:./p> @ TimeNo,请尝试一下,如果你有任何问题,请告诉我。嗨,我想这会产生奇怪的行,甚至是COS。对不起,如果我不清楚的话,我想要的是每一行都有基于索引的tan和cos的交替元素。也就是说,对于第1行,索引1是奇数,所以我们有tan,索引2是偶数,所以它的cos。然后对每个人重复row@TheQuant可以我做了一些改变。请看一看。