Numpy基本的属性操作
对于ndarray结构来说,里面所有元素必须是同一类型的,如果不是的话,会自动的向下进行转换。
import numpy as np
tang_list = [1,2,3,4,5]
new_list = np.array(tang_list)
new_list.size #查看元素大小
new_list.itemsize #查看元素占了多少字节
new_list.shap #查看元素结构
new_list.ndim #查看是几维的数组
#写法二
np.size(new_list)
np.ndim(new_list)
np.itemsize(new_list)
np.shap(new_list)
numpy列表填充相同值的方法
方法零:fill( )
tang_list=[1,2,3,4,5]
tang_array=np.array(tang_list)
tang_array.fill(9)
print(tang_array)
方法一:empty( ) fill( )
array = np.empty(10)
array.fill(7)
print(array)
运行结果:
[7. 7. 7. 7. 7. 7. 7. 7. 7. 7.]
方法二:full( )
b = np.full((3, 5), 7)
print(b)
运行结果:
[[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]]
切片索引
跟Python一样的,还是从0开始,[1:3]包前不包后。
tang_list=[1,2,3,4,5]
tang_array=np.array(tang_list)
print(tang_array)
c= tang_array[1:3]
d= tang_array[5:6]
print(c)
print(d)
f = tang_array[-2:]
print(f)
f = tang_array[-2]
print("f:%d" %f)
输出结果:
[1 2 3 4 5]
[2 3]
[]
[4 5]
f:4
矩阵格式(多维的形式)
juz_array = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(juz_array)
juz_array[1,1]=10 #重新赋值
print(juz_array)
print(juz_array[1]) #取行
print(juz_array[:,1]) #取列
print(juz_array[0,0:2]) #取特定的
输出结果:
[[1 2 3]
[4 5 6]
[7 8 9]]
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
[ 4 10 6]
[ 2 10 8]
copy()方法与赋值的区别
print("--------------")
print(juz_array)
juz_array2 = juz_array
juz_array3= juz_array.copy()
juz_array2 [1,1]=100
juz_array3[1,1] = 10000
print( juz_array3)
print(juz_array2)
print(juz_array)
输出结果:
juzarray
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
juzarray3
[[ 1 2 3]
[ 4 10000 6]
[ 7 8 9]]
juzarray2
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
juzarray
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
等差数组
tang_array = np.arange(0,100,10)
print(tang_array)
输出结果:[ 0 10 20 30 40 50 60 70 80 90]
mask = np.array([0,0,0,1,2,3,4],dtype=bool)
print(mask)
输出结果:[False False False True True True True]
布尔值作为索引(tang_array[mask])
print(tang_array[mask])
random_array = np.random.rand(10)
print(random_array)
mask = random_array>0.5
print(mask)
输出结果:
[30 40 50 60 80 90]
[0.63877771 0.65876558 0.64282817 0.12465561 0.06974439 0.43233329
0.26238864 0.81754049 0.93398163 0.12972045]
[ True True True False False False False True True False]
where
tang_array = np.array([10,20,30,40,50])
print(tang_array>30)
print(np.where(tang_array>30) ) #返回的索引
#利用索引找到值
print(tang_array[np.where(tang_array>30)])
输出结果:
[False False False True True]
(array([3, 4], dtype=int64),)
[40 50]