Files
Python_CookBook_repo/3.数字日期和时间/9.处理大型数组的计算.py
2025-09-10 16:12:45 +08:00

40 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import numpy as np
if __name__ == '__main__':
# 终于到了最喜欢的环节没有np我真的会原地爆炸np万岁
# 如果是普通的python list 想要处理是很麻烦的
li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# print(li * 2)
# 但如果转成nparray,事情就变得简单了起来
np_arr = np.array(li)
# print(np_arr * 2)
# np对一维矩阵的运算也做了加强:
li2 = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
np_arr2 = np.array(li2)
# print(np_arr * np_arr2)
# 你甚至可以计算多项式的值
# print(3 * np_arr**2 + 2 * np_arr + 1)
# numpy提供了很多通用函数来对nparray进行操作比如
np.sin(np_arr)
np.sqrt(np_arr)
# 这些操作的效率很高,平时要多用
# 在底层numpy使用和C一样的连续内存空间所以只要内存够大你可以为所欲为
grid = np.zeros(shape=(10000, 10000), dtype=float)
# print(np.sin(np.sqrt(grid + 10)))
# numpy对多维数组也提供了很好的支持
nd_array = np.array([[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]])
print(nd_array)
print(nd_array[1])
print(nd_array[:, 1])
print(nd_array[1:3, 1:3])
print(nd_array + [1,2,3,4,5])
# np.where,没见过第一个参数是条件满足就输出第二个参数x不满足就输出第三个参数y
print(np.where(nd_array < 10, nd_array, np.nan))