如何在Python中将交替三角函数添加到数组中?
因此,我想向python中给定大小的数组中添加交替的Cos和Tan函数。例如,我想为每一行添加一个大小为(10,5)的numpy数组,(Tan(a),Cos(a),Tan(a),Cos(a),Tan(a))。有人能提供一个从哪里开始的提示吗如何在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
我试着在计数器小于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可以我做了一些改变。请看一看。