numpy 常用函数clip()

np.clip()

np.clip(a,	a_min,  a_max,  out=None)  ## 是一个截取函数,用于截取数组中小于或者大于某值的部分,并使得被截取部分等于固定值,将数组限制在最小值和最大值之间
# a:输入矩阵;
# a_min:被限定的最小值,所有比a_min小的数都会强制变为a_min;
# a_max:被限定的最大值,所有比a_max大的数都会强制变为a_max;
# out:可以指定输出矩阵的对象,shape与a相同

例:

np.clip(a, 1, 8)     # a数组不变
np.clip(a, 3, 6, out=a)		# # 修剪后数组存入到a中
np.clip(a, [3,4,1,1,1,4,4,4,4,4], 8)
# 当a_min为数组时, a中每个元素和都和a_min中对应元素比较
# 0 < 3 -->小于最小值 则等于3
# 3 > 2 -->大于最小值 则等于本身 再和最大值比 没超过最大值 所以为3
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])

dim、shape、size、dtype、astype

ref

dim参数

numpy中的函数的参数dim

a.max(dim)中的dim,并不是a上的维度。而是指a的shape上的顺序(可以这么理解),a的shape是2x3x4,也就是[2, 3, 4]。故可以这样一一对应以来。

ndim

ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。

a = np.array([1, 2, 3, 4, 5, 6]))	
b = np.array([[1, 2, 3], [4, 5, 6]]))		
c = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]
print(a.ndim, b.ndim, c.ndim)
# 1, 2, 3

shape

print(a.shape, b.shape, c.shape)
# (6, ) , (2, 3), (2, 2, 3)

shape:表示各位维度大小的元组。返回的是一个元组。
对于一维数组:有疑问的是为什么不是(1,6),因为arr1.ndim维度为1,元组内只返回一个数。
对于二维数组:前面的是行,后面的是列,他的ndim为2,所以返回两个数。
对于三维数组:表示从括号外到内所包含的行或列数

size

array = np.array([[1, 2, 3],
                  [2, 3, 4]])
print(array.size)
# 6

size表示数组中一共有多少个元素。

dtype

print(a.dtype, b.dtype, c.dtype)
# int32, int32, int32

表示数据类型
int32、float64是Numpy库自己的一套数据类型。

astype

a.astype('float')
str1 = np.array(["1.22", "3.44", "5.66"], dtype=np.string_)
str1.astype('float')
# arrry([1.22, 3.44, 5.66])

转换数组的数据类型。
int32 --> float64 完全ok
float64 --> int32 会将小数部分截断
string_ --> float64 如果字符串数组表示的全是数字,也可以用astype转化为数值类型

float是python内置的类型,但是Numpy可以使用。Numpy会将Python类型映射到等价的dtype上

你可能感兴趣的:(python,numpy,python)