常用小操作
arr1 = np.array([[1, 2, 3],
[1, 2, 3],
[4, 5, 6]])
arr2 = np.array([[1, 1, 2],
[1, 2, 3],
[2, 3, 3]])
x = np.dot(arr1, arr2)
y = arr1.dot(arr2)
print(arr1.T)
np.random.random(size=(3,2))
np.random.randint(0,10,size=(3,2))
np.random.random((3,2))
np.sum(arr1)
np.min(arr1)
np.max(arr1)
np.sum(arr1, axis=0)
np.sum(arr1, axis=1)
np.argmin(arr1)
np.argmax(arr1)
np.mean(arr1)
arr1.mean()
np.abs(arr1)
np.median(arr1)
np.sqrt(arr1)
np.sort(arr1)
p = [[7, 0, 0, 5, 8, 6, 1, 5, 5, 0]]
a = np.clip(p,2,7)
a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
np.ceil(a)
结果:[-1. -1. -0. 1. 2. 2. 2.]
生成数组
np_ = np.arange(1, 8, 1)
np.zeros((5, 8), dtype='int32')
cry = np.ones((5, 8), dtype='int32')
gry0 = np.zeros_like(cry)
gry1 = np.ones_like(cry)
查看属性
array = np.array([[1, 2, 3, ],
[4, 5, 6],
[7, 8, 9]])
print(array.ndim)
print(array.shape)
print(array.size)
print(array.dtype)
print(array[0, 0])
print(array[0][0])
np_ = np.arange(1, 8, 1)
np_.shape = (2, 4)
np_1 = np.arange(1, 9)
np_1.shape = (2, 2, 2)
a = array.astype('float64')
f = np.array(['2013-01-01 01:01:01'])
f = f.astype('datetime64')
f = f.astype('datetime64[Y]')
版本过高,去除警告的方法
import warnings
warnings.filterwarnings('ignore')
Numpy的内部基本数据类型
类型名 | 类型表示符 |
---|
布尔型 | bool_ | 有符号整数型 | int8(-128~127) / int16 / int32 / int64 | 无符号整数型 | uint8(0~255) / uint16 / uint32 / uint64 | 浮点型 | float16 / float32 / float64 | 复数型 | complex64 / complex128 | 字串型 | str_,每个字符用32位Unicode编码表示 | 日期类型 | datetime64 |
字符串型:1字节=8位 类型字符码
类型 | 字符码 |
---|
np.bool_ | ? | np.int8/16/32/64 | i1 / i2 / i4 / i8 | np.uint8/16/32/64 | u1 / u2 / u4 / u8 | np.float/16/32/64 | f2 / f4 / f8 | np.complex64/128 | c8 / c16 | np.str_ | U | np.datetime64 | M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s] |
自定义复合类型
data = [
('zs', [12, 23, 34], 54),
('ls', [11, 24, 53], 77),
('ww', [12, 23, 63], 15)
]
data = np.array(data, dtype=[('name', 'str', 2),
('score', 'int32', 3),
('age', 'int32', 1),
])
print(data[1]['score'])
data = np.array(data, dtype={'names': ['name', 'score', 'age'],
'formats': ['U2', '3int32', 'int32']})
print(data[1]['score'])
视图变维
a = np.arange(1, 9)
b = a.reshape(2, 4)
c = b.reshape(2, 2, 2)
d = c.ravel()
a.shape = (2, 4)
a.resize(2, 2, 2)
数组掩码
a = np.arange(1, 9)
a1 = a > 3
print(a1)
res = np.arange(1, 101)
print(res[(res % 3 == 0) & (res % 7 == 0)])
res = np.array(['物品1', '物品2', '物品3'])
print(res[[2, 1, 0]])
mask = [0, 0, 0, 1, 2, 2, 1, 1, 0, 1, 0]
np.array(mask)
print(res[mask])
合并数组
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr3 = np.vstack((arr1,arr2))
arr4 = np.hstack((arr1,arr2))
arr5 = np.vstack((arr1,arr2,arr3))
arr = np.concatenate((arr1,arr2,arr1))
arr = np.concatenate((arr3,arr5),axis=0)
arr1_3 = np.atleast_2d(arr1)
分割数组
arr1 = np.arange(12).reshape(3,4)
arr2,arr3 = np.split(arr1,2,axis=1)
arr4,arr5,arr6 = np.split(arr1,3,axis=0)
arr7,arr8,arr9 = np.array_split(arr1,3,axis=1)
arrv1,arrv2,arrv3 = np.vsplit(arr1,3)
arrv4,arrv5 = np.hsplit(arr1,2)
np迭代元素
arr2 = np.arange(2, 14).reshape(3, 4)
for i in arr2:
print(i)
for i in arr2.T:
print(i)
for i in arr2.flat:
print(i)
|