<jupyter_start><jupyter_text>[作業目標]1. 請比較對一個 100 x 100 * 100 的陣列，使用不同方法對每一個元素 +1 的時間比較。2. 如何從一個陣列中，找出出現頻率最高的數值與位置？3. 如何利用 list(...) 實現 a.tolist() 的效果？試著用程式實作。  作業   1. 請比較對一個 1000 x 100 x 100 的陣列，使用不同方法對每一個元素 +1 的時間比較。<jupyter_code># 記得先 Import 正確的套件

import numpy as np
Z = np.random.randint(0, 10, 1000000).reshape(100, 100, 100)
%timeit -n 10 a = 2
Z = Z+1
#直接+1
%timeit -n 10 a = 2

Z2 = []

for i in Z.flat:
    Z2.append(i+1)
Z2 = np.array(Z2).reshape(100,100,100)
#用flat攤平
%timeit -n 10 a = 2

Z3 = []

for i in np.nditer (Z, order = 'C'):
    Z3.append(i+1)
Z3 = np.array(Z3, dtype = int).reshape(100,100,100)
#用nditer<jupyter_output>27.3 ns ± 10.1 ns per loop (mean ± std. dev. of 7 runs, 10 loops each)<jupyter_text>2. 如何從一個陣列中，找出出現頻率最高的數值與位置？<jupyter_code>Z = np.random.randint(0,10,50)
print(Z)

uni,count = np.unique(Z, return_counts = True)
print(uni,count, sep='\n')

print('頻率最高的數值:',uni[np.argmax(count)])
print('頻率最高的數值的次數:',max(count))


print('頻率最高的數值的位置:',np.where(Z==uni[np.argmax(count)])[0])
#np.where()[0] 表示行索引，np.where()[1]表示列索引<jupyter_output>頻率最高的數值的位置: [ 4  6  9 14 22 27 33 37 42]<jupyter_text>3. 如何利用 list(...) 實現 a.tolist() 的效果？試著用程式實作。<jupyter_code>a = np.random.randint(10, size=6) 

print(a.tolist())
print(list(a))


b = np.random.randint(10, size=(3,4)) 

print(b.tolist())
print(list(b))


c = np.random.randint(10, size=(2,3,2)) 

print(c.tolist())
print(list(c))

'a'
print(list(a))

b_list=[]
for i in b:
    b_list.append(list(i))
    print(b_list)

c_all_list=[]
for i in range(c.shape[0]):
    c_list=[]
    for j in range(c.shape[1]):
        c_list.append(list(c[i][j]))
    c_all_list.append(c_list)

print(c_all_list)<jupyter_output>[3, 6, 2, 8, 2, 3]
[[9, 1, 1, 5]]
[[9, 1, 1, 5], [5, 7, 0, 0]]
[[9, 1, 1, 5], [5, 7, 0, 0], [7, 2, 6, 1]]
[[[7, 9], [5, 3], [3, 2]], [[2, 9], [4, 3], [5, 7]]]
{'fraction_non_alphanumeric': 0.21467391304347827, 'fraction_numerical': 0.09402173913043478, 'mean_word_length': 4.39882697947214, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '59878', 'license': 'CC0-1.0', 'n_tokens_mistral': 1169, 'n_tokens_neox': 1071, 'n_words': 201, 'path': 'homework/07 Homework_Melissa.ipynb', 'repo_name': 'melissa0520/ML100Days', 'size': '1840'}