- 主题:如何优雅的生成类似[1,-3,5,-7……]这样的序列
你們為什麼統統要用FOR LOOP呢……
pi=3.1415926535897932
import numpy as np
l = np.arange(1, 100, 2)
np.sin(l*pi/2)*l
Out[17]:
array([ 1., -3., 5., -7., 9., -11., 13., -15., 17., -19., 21.,
-23., 25., -27., 29., -31., 33., -35., 37., -39., 41., -43.,
45., -47., 49., -51., 53., -55., 57., -59., 61., -63., 65.,
-67., 69., -71., 73., -75., 77., -79., 81., -83., 85., -87.,
89., -91., 93., -95., 97., -99.])
【 在 sosei (fss.sosei) 的大作中提到: 】
: [-(i * 2 + 1) if i & 1 else (i * 2 + 1) for i in range(10)] #这样写可能是速度最快的
: [(-1) ** (i & 1) * (i * 2 + 1) for i in range(10)] #这样写我觉得可读性更好,但速度只有上面50%左右
: 为正负号用itertools,太绕了
: ...................
--
FROM 73.229.62.*
不同的思路要赞
不过用上无理数不好的
【 在 Krank 的大作中提到: 】
: 你們為什麼統統要用FOR LOOP呢……
: pi=3.1415926535897932
: import numpy as np
: ...................
--
FROM 60.1.11.*
# 改进写法,这下没有重复了吧
[i if i % 4 == 1 else -i for i in range(1, 10, 2)]
--
FROM 39.183.134.*
赞。这个新思路值得m
【 在 Krank (男兒到死心如鐵) 的大作中提到: 】
: 你們為什麼統統要用FOR LOOP呢……
: pi=3.1415926535897932
: import numpy as np
: ...................
--
FROM 115.57.131.*
既然用numpy了,可以这样写
lst=np.arange(1,n+1,2)
lst2=np.where(lst%4==1,lst,-lst)
【 在 Krank (男兒到死心如鐵) 的大作中提到: 】
: 标 题: Re: 如何优雅的生成类似[1,-3,5,-7……]这样的序列
: 发信站: 水木社区 (Sat Jun 13 17:17:25 2020), 站内
:
: 你們為什麼統統要用FOR LOOP呢……
:
: pi=3.1415926535897932
: import numpy as np
: l = np.arange(1, 100, 2)
: np.sin(l*pi/2)*l
:
: Out[17]:
: array([ 1., -3., 5., -7., 9., -11., 13., -15., 17., -19., 21.,
: -23., 25., -27., 29., -31., 33., -35., 37., -39., 41., -43.,
: 45., -47., 49., -51., 53., -55., 57., -59., 61., -63., 65.,
: -67., 69., -71., 73., -75., 77., -79., 81., -83., 85., -87.,
: 89., -91., 93., -95., 97., -99.])
:
:
: 【 在 sosei (fss.sosei) 的大作中提到: 】
: : [-(i * 2 + 1) if i & 1 else (i * 2 + 1) for i in range(10)] #这样写可能是速度最快的
: : [(-1) ** (i & 1) * (i * 2 + 1) for i in range(10)] #这样写我觉得可读性更好,但速度只有上面50%左右
: : 为正负号用itertools,太绕了
: : ...................
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 73.229.62.*]
--
修改:roy FROM 123.123.106.*
FROM 123.123.106.*
这个思路和14楼flw的帖子差不多。
不过flw那个帖子不是python代码。。
【 在 upndown (每天锻炼2小时为祖国健康工作100年) 的大作中提到: 】
: 赞。这个新思路值得m
--
FROM 114.84.111.*
不好,n太大的时候计算量太大
【 在 Qlala () 的大作中提到: 】
: -1 n次方不香么
: 【 在 adoal 的大作中提到: 】
--
FROM 180.79.240.*
我哪裡用了無理數?pi取近似值而已。
沒有測試速度,不過按說numpy應該比python的FOR LOOP快一個數量級以上。
【 在 sosei (fss.sosei) 的大作中提到: 】
: 不同的思路要赞
: 不过用上无理数不好的
--
修改:Krank FROM 73.229.62.*
FROM 73.229.62.*
你這個用搜索的會慢得令人髮指吧。
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: 既然用numpy了,可以这样写
: lst=np.arange(1,n+1,2)
: lst2=np.where(lst%4==1,lst,-lst)
: ...................
--
FROM 73.229.62.*
我看原題第一反應就是週期函數,怎麼會這麼多人都搞FOR LOOP真是不懂……
【 在 upndown (每天锻炼2小时为祖国健康工作100年) 的大作中提到: 】
: 赞。这个新思路值得m
--
FROM 73.229.62.*