美文网首页
Python-Numpy学习1

Python-Numpy学习1

作者: 兜里有颗糖儿 | 来源:发表于2018-07-09 22:31 被阅读0次

安装numpy

conda install numpy 或者是 pip install numpy


基础用法

import numpy as np
#1.一位数组
my_list=[1,2,3,4,5,6,7,8,9]
my_numpy_list=np.array(my_list)     #输出:[1 2 3 4 5 6 7 8 9]

2.二维/多维列表
second_list=[[1,2,3],[5,6,7],[8,9,0]]
my_numpy_second_List=np.array(second_list)
print my_numpy_second_list
print my_numpy_second_List.shape
#[[1 2 3]
# [5 6 7]
#[8 9 0]]
#(3, 3)

3.arange
list1=np.arange(10)
print list1            #[0 1 2 3 4 5 6 7 8 9]
list2=np.arange(1,10,2)
print list2                #[1 3 5 7 9]

4. zeros 全0
list3=np.zeros(7)
print list3                 #[ 0.  0.  0.  0.  0.  0.  0.]

5.ones 全1
list4=np.ones(5)
print list4               #[ 1.  1.  1.  1.  1.]
list5=np.ones((2,6))
print list5
#[[ 1.  1.  1.  1.  1.  1.]
# [ 1.  1.  1.  1.  1.  1.]]

6. linspace        #⚠️这个不太熟悉,需要再加深印象
lin_arr=np.linspace(1,3,15)
print lin_arr
#[ 1.          1.14285714  1.28571429  1.42857143  1.57142857  1.71428571
#  1.85714286  2.          2.14285714  2.28571429  2.42857143  2.57142857
#  2.71428571  2.85714286  3.        ]

7. eye         #这个不太熟悉,需要再加深印象
my_matrx=np.eye(6)
print my_matrx
#[[ 1.  0.  0.  0.  0.  0.]
# [ 0.  1.  0.  0.  0.  0.]
# [ 0.  0.  1.  0.  0.  0.]
# [ 0.  0.  0.  1.  0.  0.]
# [ 0.  0.  0.  0.  1.  0.]
# [ 0.  0.  0.  0.  0.  1.]]

8.rand 随机产生数字
my_rand=np.random.rand(5,4)
print my_rand
#[[ 0.19058941  0.01583677  0.56039447  0.62691349]
# [ 0.40641409  0.64774593  0.38530584  0.06756001]
# [ 0.22409824  0.32093899  0.62316059  0.7889666 ]
# [ 0.66718905  0.17998823  0.02650176  0.93572683]
# [ 0.84806273  0.25490713  0.41677261  0.90502119]]
#打印了3次,均为这个结果。多次打印不随机
my_rand=np.random.rand(4)
print my_rand      #[ 0.66689373  0.03115218  0.55387478  0.9276893 ]

9.randn,以 0 为中心的标准正态分布或高斯分布中产生随机样本
 my_randn=np.random.randn(5,4)
 print my_randn
#[[-0.62363981 -0.10991569 -1.67637544  1.00907201]
# [-0.57020259  1.12572032 -0.5793159  -1.98747355]
# [-0.60594079 -0.01324758  0.17214394  0.61305687]
# [ 0.43345439  0.8352919  -0.2378221   1.09331725]
# [-0.21542862  0.5592559  -0.98662748 -0.18555707]]
#打印了3次,均为这个结果。多次打印不随机
10.randint 随机产生的数字,都是int型
print np.random.randint(20)             #3/16/17   多次打印随机
print np.random.randint(2,20)          #14/3 多次打印随机
print np.random.randint(2,20,4)      #4位输出的数字的个数,[ 7 13  3  5]
 
11.randint
arr_2=np.random.randint(0,20,10)     #arr_2=[ 1  1 18 15 11 16  1  9 17  8]
print arr_2.max()        #18
print arr_2.min()         #1
print arr_2.argmax()  #显示出来,最大的那个数字的索引位置,18的位置为2
print arr_2.argmin()  #显示出最校的数字的索引为0

12.列表的表示的形式
two_d_arr=np.array([[10,2,30],[30,40,50],[60,70,80]])
print two_d_arr[2][2]
print two_d_arr(2,2)
print two_d_arr[:1,:2]  ###重点注意下⚠️
print two_d_arr[:2]
print two_d_arr[2]

13.⚠️重点注意一下,bool和数字的转换
 new_arr=np.arange(5,15)              #array([ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14])
 new_arr>10                    #array([False, False, False, False, False, False,  True,  True,  True,  True], dtype=bool)
bool_arr=new_arr>10
new_arr[bool_arr]           #array([11, 12, 13, 14])
#另外一种写法
new_arr[(new_arr)>6&(new_arr<10)]        #array([7, 8, 9])

14 广播(重新赋值、+、-、*、/、+n、数学运算)
new_arr[0:3]=30       #array([30, 30, 30,  8,  9, 10, 11, 12, 13, 14])
new_arr*new_arr       #array([900, 900, 900,  64,  81, 100, 121, 144, 169, 196])
new_arr+new_arr       #array([60, 60, 60, 16, 18, 20, 22, 24, 26, 28])
new_arr-new_arr       #array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
new_arr/new_arr       #array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
new_arr+40            #array([70, 70, 70, 48, 49, 50, 51, 52, 53, 54])
#数学运算类
np.sqrt(new_arr)
array([ 5.47722558,  5.47722558,  5.47722558,  2.82842712,  3.        ,
        3.16227766,  3.31662479,  3.46410162,  3.60555128,  3.74165739])
np.exp(new_arr)
array([  1.06864746e+13,   1.06864746e+13,   1.06864746e+13,
         2.98095799e+03,   8.10308393e+03,   2.20264658e+04,
         5.98741417e+04,   1.62754791e+05,   4.42413392e+05,
         1.20260428e+06])
np.sin(new_arr)
array([-0.98803162, -0.98803162, -0.98803162,  0.98935825,  0.41211849,
       -0.54402111, -0.99999021, -0.53657292,  0.42016704,  0.99060736])
np.cos(new_arr)
array([ 0.15425145,  0.15425145,  0.15425145, -0.14550003, -0.91113026,
       -0.83907153,  0.0044257 ,  0.84385396,  0.90744678,  0.13673722])
np.log(new_arr)
array([ 3.40119738,  3.40119738,  3.40119738,  2.07944154,  2.19722458,
        2.30258509,  2.39789527,  2.48490665,  2.56494936,  2.63905733])
np.sum(new_arr)        #167
np.std(new_arr)          #8.8662280593271454
new_arr2=new_arr.reshape(2,5)
new_arr2.sum()
new_arr2.sum(axis=0)   #array([40, 41, 42, 21, 23])
new_arr2.sum(axis=1)    #array([107,  60])
axis=0/axis=1

axis=0,指的是针对于列,进行求和
axis=1,指的是针对于行,进行求和
感觉自己总是对于0、1,列、行,傻傻地分不清
便捷记忆:1,为竖线旋转为行


参考文章:
入门 | 数据科学初学者必知的NumPy基础知识

相关文章

  • Python-Numpy学习1

    安装numpy conda install numpy 或者是 pip install numpy 基础用法 ax...

  • Python-numpy

    numpy 基础 函数默认带参: 默认值声明从右向左,参数分配默认从左向右 遇到有些有默认有些无默认,需要将有默认...

  • Python-numpy库

    1、引入numpy库 2、创建数组 3、数组的基本属性 4、数组切片/索引 4、数组的广播 5、数组的迭代 6、数...

  • Python-Numpy基础

    安装 NumPy 如果你已经装有 Anaconda,那么你可以使用以下命令通过终端或命令提示符安装 NumPy:c...

  • Python-Numpy函数-tile函数

    转载来源:https://www.cnblogs.com/GDUT-xiang/p/5700928.html b ...

  • python-numpy之tile函数

    在机器学习算法KNN讲解中出现np.tile(A,B),其中A为array,B为tuple,例如:(3,2)具体使...

  • python-numpy配置及应用

    1.pycharm 下载 toolbox 2.pip3 brew 3.numpy配置 pip3 install n...

  • 小白怎么开始学python-Numpy数组篇

    数组是python的主角之一,以下会记录数组的创建方法和应用 Numpy——用它来进行数组创建 在开始之前先来了解...

  • 学习1

    吸引观众最简单的方法就是让他们知道在限定的时间限定的地点某人必须尝试某事,而如果失败,就会招致杀身之祸。——哈里·霍尼迪

  • 学习1

    今天下午是我过得最有意义的一个下午,我在阅览室做了两个钟头的题,并且了解广告年鉴。 哈哈,以后我想每天都这样过。

网友评论

      本文标题:Python-Numpy学习1

      本文链接:https://www.haomeiwen.com/subject/caqxpftx.html