2025-09-10:仓库迁移
This commit is contained in:
39
3.数字日期和时间/9.处理大型数组的计算.py
Normal file
39
3.数字日期和时间/9.处理大型数组的计算.py
Normal file
@@ -0,0 +1,39 @@
|
||||
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))
|
Reference in New Issue
Block a user