Skip to content

Commit d3fa0a1

Browse files
committed
add Day8 homework structured arrays
1 parent 3ee9927 commit d3fa0a1

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

D08_structuredArrays/homework.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import numpy as np
2+
3+
# https://numpy.org/doc/stable/reference/arrays.dtypes.html
4+
# '?' boolean
5+
# 'b' (signed) byte
6+
# 'B' unsigned byte
7+
# 'i' (signed) integer
8+
# 'u' unsigned integer
9+
# 'f' floating-point
10+
# 'c' complex-floating point
11+
# 'm' timedelta
12+
# 'M' datetime
13+
# 'O' (Python) objects
14+
# 'S', 'a' zero-terminated bytes (not recommended)
15+
# 'U' Unicode string
16+
# 'V' raw data (void)
17+
18+
name_list = ['小明','小華','小菁','小美','小張','John','Mark','Tom']
19+
sex_list = ['boy','boy','girl','girl','boy','boy','boy','boy']
20+
weight_list = [67.5,75.3,50.1,45.5,80.8,90.4,78.4,70.7]
21+
rank_list = [8,1,5,4,7,6,2,3]
22+
myopia_list = [True,True,False,False,True,True,False,False]
23+
24+
# 將上列 list 依照['name', 'sex', 'weight', 'rank', 'myopia']順序擺入 array,並且資料型態順序擺入[Unicode,Unicode,float,int,boolean]
25+
# dt=np.dtype('U, U, f, i, ?')
26+
# dt=np.dtype({'names':(),'formats':()})
27+
dt=np.dtype({'names':('name', 'sex', 'weight', 'rank', 'myopia'),'formats':('U5', 'U5', 'f', 'i', '?')})
28+
a=np.zeros(8,dtype=dt)
29+
a['name']=name_list
30+
a['sex']=sex_list
31+
a['weight']=weight_list
32+
a['rank']=rank_list
33+
a['myopia']=myopia_list
34+
print(a)
35+
36+
# 呈上題,將 array 中體重(weight)數據集取出算出全部平均體重
37+
b=np.average(a['weight'])
38+
print('全部平均體重 %f' % b)
39+
40+
# 呈上題,進一步算出男生(sex 欄位是 boy)平均體重、女生(sex 欄位是 girl)平均體重
41+
a_where = np.where(a['sex']=='boy')
42+
# print(a_where)
43+
avBoy=np.average( a[a_where]['weight'] )
44+
print('男生(sex 欄位是 boy)平均體重 %f' % avBoy)
45+
b_where = np.where(a['sex']=='girl')
46+
# print(b_where)
47+
avGirl=np.average( a[b_where]['weight'] )
48+
print('女生(sex 欄位是 girl)平均體重 %f' % avGirl)

0 commit comments

Comments
 (0)