40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
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))
|