numpy基础一
Posted panfengde
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy基础一相关的知识,希望对你有一定的参考价值。
numpy概览
import numpy as np
array=np.array([1,2,3,4])
array.shape
(4,)
array2=np.array([[1,2,3,4],[2,3,4,1]])
array2.shape
(2, 4)
array3=np.array([[1,2,3,4],[2,3,4,1]])
type(array3)
numpy.ndarray
np.array的结构
1. dtype 数据类型
2. itemsize 占了多少字节
3. shape 形状
4. size 数据个数
5. ndim 维度
6. fill填充
7. 索引和切片
* 要求array里面的数据是同一种类型,如果不是,numpy会转为一种
* int<float<String(取值类型顺序)
import numpy as np
array1=np.array([1,2,3,4])
array1.dtype
# >>> dtype(‘int32‘)
array2=np.array([1,2,3,4.5])
array2.dtype
#>>> dtype(‘float64‘)
array3=np.array([1,‘2‘,3,4.5])
array3.dtype
#>>>dtype(‘<U11‘)
weidu=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu.dtype)
print(weidu.itemsize)
print(weidu.shape)
print(weidu.size)
print(weidu.ndim)
#>>> nt32
#>>> 4
#>>> (3, 3)
#>>> 9
#>>> 2
weidu2=np.array([[1,2,3],[1,3,2],[4,2,1]])
weidu2.fill(0)
print(weidu2)
# >>>
[[0 0 0]
[0 0 0]
[0 0 0]]
矩阵格式(多维的形式)
- 多维度的取值方式和list不同
- nb.array.copy 深度复制
- arange(0,100,10) 0到100 , 差值10构造等差数组
- 布尔数组作为索引取值
- 随机值random.rand(10) 0到1制作10个随机数 生成np数组
weidu3=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu3[1,1])
print(weidu[:,1]) #每一行的第二个数
print(weidu[:,0:2]) #每一行的第一和第二个数
weidu[:,0:2][0,1]
#>>>
3
[2 3 2]
[[1 2]
[1 3]
[4 2]]
2
one=np.array([[1,2],[3,4]])
oneCopy=one.copy()
oneCopy[0,1]=100
print(one)
print(oneCopy)
#>>>
[[1 2]
[3 4]]
[[ 1 100]
[ 3 4]]
pan_array=np.array([1,2,3,4,5,6],dtype=np.float32)
print(pan_array)
print(pan_array.dtype)
print(pan_array.nbytes) # 32位 四个字节 * 6 =24B
#>>>
[1. 2. 3. 4. 5. 6.]
float32
24
布尔数组作为索引取值
indexs=np.array([0,1,0,2,0,1,0],dtype=bool)
print(indexs)
numbers=np.array([10,20,30,4,5,7,8])
result=numbers[indexs] #在索引为true的地方取值
print(result)
#>>>>
[False True False True False True False]
[20 4 7]
随机数转化为布尔值
random_array=np.random.rand(10)
print(random_array)
boolarray=random_array>0.5
print(boolarray)
#>>>
[0.18501146 0.03588 0.04643065 0.88957392 0.15500452 0.49480942
0.28144087 0.83287192 0.72878256 0.66462199]
[False False False True False False False True True True]
按条件找到索引
array_index=np.array([1,2,3,4,5,6,8,2,1,3,11,6,8,12])
result=np.where(array_index > 8)
print(result)
print(array_index[np.where(array_index > 8)])
#>>>
(array([10, 13], dtype=int64),)
[11 12]
np.asarray 重新给np.array指定数值类型---深度copy
pan_int32=np.array([1,2,3],dtype=np.int32)
pan_float32=np.asarray(pan_int32,dtype=np.float32)
print(pan_float32)
print(pan_int32)
以上是关于numpy基础一的主要内容,如果未能解决你的问题,请参考以下文章
Python必备基础:这些NumPy的神操作你都掌握了吗?微交易支付通道申请微信支付接口对接支付宝支付通道搭建微盘网银扫码快捷H5支付