判断某点是否在圆圈内

  1. - (BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event   
  2. {  
  3. CGPoint pt;  
  4. float HALFSIDE = SIDELENGTH / 2.0f;  
  5. // normalize with centered origin  
  6. pt.x = (point.x - HALFSIDE) / HALFSIDE;  
  7. pt.y = (point.y - HALFSIDE) / HALFSIDE;  
  8. // x^2 + y^2 = radius  
  9. float xsquared = pt.x * pt.x;  
  10. float ysquared = pt.y * pt.y;  
  11. // If the radius < 1, the point is within the clipped circle  
  12. if ((xsquared + ysquared) < 1.0return YES;  
  13. return NO;  
  14. }  
以下是使用 Python 和 pandas 库完成上述问题的代码和解答: ```python import pandas as pd # 读取Excel文件 df = pd.read_excel('购房.xlsx') # (1) 打印出数据表有几行几列 print(f'数据表共有 {df.shape[0]} 行,{df.shape[1]} 列。') # (2) 使用 pandas 中的函数判断其中是否包含缺失值 if df.isnull().values.any(): print('数据表中包含缺失值。') else: print('数据表中没有缺失值。') # (3) 将序号列作为 index,简化【17、…、21】这五列的列名(如 17、…改为“学历”) df = df.set_index('序号') df = df.rename(columns={'17、…、21': '学历', '22、…、26': '年龄', '27、…、31': '职业', '32、…、35': '拥有住房数量', '36、…、39': '限购政策', '40、…、43': '住房保障性政策'}) # (4) 删除【限购政策、…、住房保障性政策】这四列内容中的【A.B.C.】等选项字母、请删除【学历和职业】两列中选项前的小圆圈。(提示:可以使用 apply 函数) def clean_string(x): return x.strip('A.B.C.').strip('●') df['学历'] = df['学历'].apply(clean_string) df['职业'] = df['职业'].apply(clean_string) df['限购政策'] = df['限购政策'].apply(clean_string) df['住房保障性政策'] = df['住房保障性政策'].apply(clean_string) # (5) 选择其中两列内容,制作二维的列联表,完成 2-3 个探索性分析 table = pd.crosstab(df['拥有住房数量'], df['学历']) print(table) # 进行探索性分析 # 以年龄为横轴,拥有住房数量为纵轴,制作散点图,探究年龄与拥有住房数量的关系 df.plot.scatter(x='年龄', y='拥有住房数量') # 制作堆积柱状图,探究不同学历对限购政策的观点是否有所不同 table.plot(kind='bar', stacked=True) ``` 解答: (1) 使用 pandas 库中的 shape 属性可以得到数据表的行数和列数。 (2) 使用 pandas 库中的 isnull() 函数可以判断数据表中是否包含缺失值,使用 values.any() 可以判断所有值中是否包含至少一个缺失值。 (3) 使用 pandas 库中的 set_index() 函数可以将某一列设置为 index,使用 rename() 函数可以重命名列名。 (4) 使用 apply() 函数可以对某一列进行清洗操作。 (5) 使用 pandas 库中的 crosstab() 函数可以制作二维的列联表,进而进行探索性分析。可以使用 plot() 函数进行绘图。在本例中,我们制作了一个散点图和一个堆积柱状图,分别探究了年龄与拥有住房数量的关系以及不同学历对限购政策的观点是否有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值