55 lines
1.1 KiB
Python
55 lines
1.1 KiB
Python
#!/usr/bin/env python
|
|
# -*- encoding: utf-8 -*-
|
|
"""
|
|
Topic: 利用numpy执行数组运算
|
|
Desc :
|
|
"""
|
|
import numpy as np
|
|
|
|
|
|
def array_numpy():
|
|
x = [1, 2, 3, 4]
|
|
y = [5, 6, 7, 8]
|
|
print(x * 2)
|
|
print(x + y)
|
|
|
|
# Numpy arrays
|
|
ax = np.array([1, 2, 3, 4])
|
|
ay = np.array([5, 6, 7, 8])
|
|
print(ax * 2)
|
|
print(ax + ay)
|
|
print(ax * ay)
|
|
|
|
print(f(ax))
|
|
print(np.sqrt(ax))
|
|
print(np.cos(ax))
|
|
|
|
# 大数组
|
|
grid = np.zeros(shape=(10000, 10000), dtype=float)
|
|
grid += 10
|
|
print(grid)
|
|
print(np.sin(grid))
|
|
|
|
# 二维数组的索引操作
|
|
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
|
|
print(a)
|
|
print(a[1]) # Select row 1
|
|
print(a[:, 1]) # Select column 1
|
|
# Select a subregion and change it
|
|
print(a[1:3, 1:3])
|
|
a[1:3, 1:3] += 10
|
|
print(a)
|
|
|
|
# Broadcast a row vector across an operation on all rows
|
|
print(a + [100, 101, 102, 103])
|
|
# Conditional assignment on an array
|
|
print(np.where(a < 10, a, 10))
|
|
|
|
|
|
|
|
def f(x):
|
|
return 3 * x ** 2 - 2 * x + 7
|
|
|
|
|
|
if __name__ == '__main__':
|
|
array_numpy() |