Numpy基礎(chǔ)筆記

一、Numpy列表簡單介紹

1、numpy其實就是多維的數(shù)組對象

import numpy as np

data = [1, 2, 3, 4]
n = np.array(data)
print(data)
print(n)
print(n.shape)
print(n.dtype)

2塌碌、嵌套序列:是有一組等長列表組成的列表

arr = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
arr2 = np.array(arr)
print(arr)
print(arr2)
print(arr2.shape)

3舆驶、numpy會對數(shù)據(jù)類型進(jìn)行推理

arr = [['1', '2', 3, 4], ['5', 6, 7, 8]]
arr2 = np.array(arr)
print(arr)
print(arr2)
print(arr2.dtype)

arr = [[1.21, 2.12, 3, 4], [1, 2, 3, 4]]
arr2 = np.array(arr)
print(arr)
print(arr2)
print(arr2.dtype)

4橱健、指定長度的數(shù)組的快速創(chuàng)建

np.zeros([2, 3])
np.zeros([2, 3, 4])

np.ones([2, 3])

np.empty((3, 3))

np.arange(10)

5、類型轉(zhuǎn)換

arr = np.array([1, 2, 1, 3, 1,4, -2.1, -2.2, -3.3])
print(arr)
print(arr.astype(np.int32))

6沙廉、矢量化 -- 進(jìn)行數(shù)據(jù)的批量運(yùn)算和處理

# 加法:維度相等
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([11, 22, 33, 44])
arr1 + arr2

arr1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr2 = np.array([[11, 22, 33, 44], [55, 66, 77, 88]])
print(arr1 + arr2)

# 乘法
arr1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr2 = np.array([[11, 22, 33, 44], [55, 66, 77, 88]])
print(arr1 * arr2)

7拘荡、索引和切片操作

arr = np.arange(10)
print(arr)

arr[2:4]

aa = arr.copy()
print(aa)

aa[2]

aa[2] = 22
aa

aa[6:] = 666
aa

arr1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr1[1][0:]

8、numpy array的比較運(yùn)算

names = np.array(['張三','李四','王五'])
names == '張三'

# 關(guān)系運(yùn)算 & 撬陵、|
(names == '張三') & (names == '李三')

9珊皿、花式索引 fancy indexing numpy中的一個術(shù)語,指的是利用整數(shù)數(shù)組來進(jìn)行索引

arr = np.empty((8, 4))
for i in range(len(arr)):
    arr[i] = i
print(arr)

print(arr[[3, 4, 0, 1]])

arr = np.arange(32).reshape((8, 4))
print(arr)

arr[[1, 5, 7, 2]]

arr[[1, 5, 7, 2], [0, 3, 2, 1]]

# 切片取整行/列  與數(shù)組索引不同巨税,`:`表示所有
arr[[1, 5, 7, 2]][:,[0, 3, 2, 1]]
arr[[1, 5, 7, 2]][[0, 1, 2, 3],[0, 3, 2, 1]]
arr[[1, 5, 7, 2]][1:3,[0, 3, 2, 1]]
arr[[1, 5, 7, 2]][[3,2,1,0],:]
arr[[1, 5, 7, 2]][[3,2,1,0],0:3]

10蟋定、數(shù)組轉(zhuǎn)置

arr = np.arange(15).reshape(3, 5)
print(arr)

arr.T
arr.transpose()

11、軸轉(zhuǎn)置

arr = np.arange(24).reshape(2,3,4)
print(arr)

a = arr.transpose((1, 2, 0))
print(a)
# matplotlib
points = np.arange(-5, 5, 0.01)
xs, ys = np.meshgrid(points, points)
# print(xs)
# print(ys)
import matplotlib.pyplot as plt
z = np.sqrt(xs ** 2 + ys ** 2)
# print(z)
plt.imshow(z, cmap=plt.cm.spring)
plt.colorbar()

12垢夹、條件邏輯轉(zhuǎn)數(shù)組

x_arr = np.array([1.1, 1.2, 1.3])
y_arr = np.array([2.1, 2.2, 2.3])
condition = np.array([True, False, True])
# zip 接受的參數(shù)是可迭代對象
# zip 函數(shù)用于將可迭代的對象作為參數(shù)溢吻,將對象中的元素打包成一個個元組,然后返回由這些元組組成的列表
l = zip(x_arr, y_arr, condition)
result = [x if z else y for x, y, z in l]
print(result)

np.where(condition, x_arr, y_arr)

13果元、值替換

arr = np.random.randn(4, 4)
print(arr)

arr = np.random.randn(4, 4)
print(arr)
arr_1 = np.where(arr>0, 5, -5)
print(arr_1)

arr = np.random.randn(4, 4)
print(arr)
arr_1 = np.where(arr>0, 5, arr)
print(arr_1)

14促王、numpy簡單的數(shù)學(xué)運(yùn)算

arr = np.arange(8).reshape(2,4)
print(arr)

arr.mean()
arr.sum()

arr.mean(axis=0)  # 列
arr.mean(axis=1)  # 行

arr.sum(axis=0)  # 列
arr.sum(axis=1)  # 行
# 排序
arr = np.array([9,8,7,6,5,4,3,2,1]).reshape(3, 3)
print(arr)
arr.sort()
print(arr)
position = 0
walk = [position]
steps = 1000
for i in range(steps):
    step = 1 if np.random.randint(0,2) else -1
    position += step
    walk.append(position)
    
a = plt.plot(walk)
a

(np.abs(walk)  == 10).argmax()

二、常用畫圖工具

1而晒、matplotlib畫圖

官網(wǎng):https://matplotlib.org/gallery/index.html

# 示例 1:
import matplotlib.pyplot as plt
import numpy as np


labels = ['G1', 'G2', 'G3', 'G4', 'G5', 'G6']
men_means = [20, 34, 30, 35, 27, 10]
women_means = [25, 32, 34, 20, 25, 12]

x = np.arange(len(labels))  # the label locations
width = 0.35  # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men_means, width, label='Men')
rects2 = ax.bar(x + width/2, women_means, width, label='Women')

# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()


def autolabel(rects):
    """Attach a text label above each bar in *rects*, displaying its height."""
    for rect in rects:
        height = rect.get_height()
        ax.annotate('{}'.format(height),
                    xy=(rect.get_x() + rect.get_width() / 2, height),
                    xytext=(0, 3),  # 3 points vertical offset
                    textcoords="offset points",
                    ha='center', va='bottom')


autolabel(rects1)
autolabel(rects2)

fig.tight_layout()

plt.show()
# 示例 2:
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(6, 3), subplot_kw=dict(aspect="equal"))

recipe = ["375 g flour",
          "75 g sugar",
          "250 g butter",
          "200 g berries",
         "100 g test"]

data = [float(x.split()[0]) for x in recipe]
ingredients = [x.split()[-1] for x in recipe]


def func(pct, allvals):
    absolute = int(pct/100.*np.sum(allvals))
    return "{:.1f}%\n({:d} g)".format(pct, absolute)


wedges, texts, autotexts = ax.pie(data, autopct=lambda pct: func(pct, data),
                                  textprops=dict(color="w"))

ax.legend(wedges, ingredients,
          title="Ingredients",
          loc="center left",
          bbox_to_anchor=(1, 0, 0.5, 1))

plt.setp(autotexts, size=8, weight="bold")

ax.set_title("Matplotlib bakery: A pie")

plt.show()

2蝇狼、echarts畫圖

官網(wǎng):https://matplotlib.org/gallery/index.html
pyecharts官網(wǎng):https://pyecharts.org/#/zh-cn/quickstart?id=%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85

# -*- coding:utf-8 -*-
__author__ = 'hope'
__date__ = '2020-05-06'

from pyecharts.charts import Bar


def test_bar_1():
    bar = Bar()
    bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
    bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    # render 會生成本地 HTML 文件,默認(rèn)會在當(dāng)前目錄生成 render.html 文件
    # 也可以傳入路徑參數(shù)倡怎,如 bar.render("mycharts.html")
    bar.render()


def test_bar_2():
    bar = (
        Bar()
        .add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
        .add_yaxis("商家X", [5, 20, 36, 10, 75, 90])
    )
    bar.render()


if __name__ == '__main__':
    # test
    # test_bar_1()
    test_bar_2()

3迅耘、Axure畫圖

產(chǎn)品經(jīng)理設(shè)計時常用贱枣;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市颤专,隨后出現(xiàn)的幾起案子纽哥,更是在濱河造成了極大的恐慌,老刑警劉巖栖秕,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春塌,死亡現(xiàn)場離奇詭異,居然都是意外死亡簇捍,警方通過查閱死者的電腦和手機(jī)只壳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暑塑,“玉大人吼句,你說我怎么就攤上這事∈赂瘢” “怎么了惕艳?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長分蓖。 經(jīng)常有香客問我尔艇,道長尔许,這世上最難降的妖魔是什么么鹤? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮味廊,結(jié)果婚禮上蒸甜,老公的妹妹穿的比我還像新娘。我一直安慰自己余佛,他們只是感情好柠新,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辉巡,像睡著了一般恨憎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郊楣,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天憔恳,我揣著相機(jī)與錄音,去河邊找鬼净蚤。 笑死钥组,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的今瀑。 我是一名探鬼主播程梦,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼点把,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屿附?” 一聲冷哼從身側(cè)響起郎逃,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挺份,沒想到半個月后衣厘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡压恒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年影暴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片探赫。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡型宙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伦吠,到底是詐尸還是另有隱情妆兑,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布毛仪,位于F島的核電站搁嗓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏箱靴。R本人自食惡果不足惜腺逛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衡怀。 院中可真熱鬧棍矛,春花似錦、人聲如沸抛杨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怖现。三九已至茁帽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屈嗤,已是汗流浹背潘拨。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恢共,地道東北人战秋。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像讨韭,于是被迫代替她去往敵國和親脂信。 傳聞我的和親對象是個殘疾皇子癣蟋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361