[轉載] Python3 數組

參考鏈接: Python中的Array | 數組1(簡介和功能)

一、list和array的區別?

Python的數組通過Numpy包的array實現。 Python里二者最大的區別是,list可以存儲不同類型的數據,而array只能存儲相同類型的數據。?

import numpy

#直接定義

a = [1,2,3,4,'5']? ?#列表list,可以混合類型

b = numpy.array([1,2,3,4,5])? ? ? ? #數字數組array

c = numpy.array([1,2,3,4,'5'])? ? ? #字符數組array

?

#打印出來也有不同

print(a)? ? #[1, 2, 3, 4]

print(b)? ? #[1 2 3]

print(c)? ? #['1' '2' '3' '4' '5']

?

#生成值為連續數字的對象

a1 = list(range(5))

b1 = numpy.arange(5)

?

#打印結果

print(a1)? ?#[0, 1, 2, 3, 4]

print(b1)? ?#[0 1 2 3 4]

?

?

二、創建數組的方法?

(一) numpy.empty 創建未初始化的數組(非空,元素為隨機值)?

numpy.empty(shape, dtype = float, order = ‘C’) 參數列表分別為形狀,數據類型,在計算機中的存儲為行優先 ‘C’ 或者列優先 ‘F’。?

import numpy?

x = numpy.empty([3,2], dtype = int)?

print(x)

?

[[0 0]

?[0 0]

?[0 0]]

?

(二) numpy.zeros 創建元素為 0 的數組?

numpy.zeros(shape, dtype = float, order = ‘C’)?

import numpy

y = numpy.zeros((2,2), dtype=int)

print(y)

?

[[0 0]

?[0 0]]

?

(三) numpy.ones 創建元素為 1 的數組?

import numpy

z = numpy.ones((2,2))? ? #這幾個創建方式都需要注意第一個參數的形式

print(z)

?

[[1. 1.] [1. 1.]]?

(四) numpy.asarray 根據已有的元組或者列表創建數組?

numpy.asarray(a, dtype = None, order = None) 這是從列表轉換為數組的例子?

import numpy

x = [[1,2,3],[4,5,6]]? ?#需要注意原列表的形式

y = [[1,2,3],[4,5]]

z = [[1,2,3],[4,5,'6']]

q = [[1,2,3],[4,5,6]]

?

a = numpy.asarray(x)

b = numpy.asarray(y)

c = numpy.asarray(z)

d = numpy.asarray(q,dtype=float)

print(a)

print(b)

print(c)

print(d)

?

[[1 2 3]

?[4 5 6]]

[list([1, 2, 3]) list([4, 5])]

[['1' '2' '3']

?['4' '5' '6']]

[[1. 2. 3.]

?[4. 5. 6.]]

?

(五) numpy.frombuffer 流形式讀入轉換為數組?

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0) 細節太多不討論了,需要的時候再看?

(六) numpy.fromiter 從可迭代對象創建數組,返回一維數組?

numpy.fromiter(iterable, dtype, count=-1) count為讀取的數據數量,默認為-1,讀取所有數據?

import numpy

x = range(5)

it = iter(x)

a = numpy.fromiter(x, dtype=float)

print(a)

?

[0. 1. 2. 3. 4.]

?

(七) numpy.arange 從數值范圍創建數組?

numpy.arange(start, stop, step, dtype)?

import numpy

a = numpy.arange(5)

print(a)

?

[0 1 2 3 4]

?

(八) numpy.linspace 創建等差數列一維數組?

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) num為數量,endpoint為真時stop被包含在數列中,retstep為真時顯示間距?

import numpy

a = numpy.linspace(0,100,11)

b = numpy.linspace(0,100,11,retstep =True, dtype=int)

print(a)

print(b)

?

[? 0.? 10.? 20.? 30.? 40.? 50.? 60.? 70.? 80.? 90. 100.]

(array([? 0,? 10,? 20,? 30,? 40,? 50,? 60,? 70,? 80,? 90, 100]), 10.0)

?

(九) numpy.logspace 創建等比數列一維數組?

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) 序列的起始值為:base**start (base為底的start次方) 序列的終止值為:base ** stop (base為底的stop次方), 如果endpoint為true,該值包含于數列中 base為log的底數?

import numpy

a = numpy.logspace(1, 4, 4, base=3, dtype = int)

b = numpy.logspace(1, 10, 10, base=2)

print(a)

print(b)

?

[ 3? 9 27 81]

[? ?2.? ? 4.? ? 8.? ?16.? ?32.? ?64.? 128.? 256.? 512. 1024.]

?

三、array的操作?

(一) reshape 整形?

import numpy

a = numpy.arange(6)

b = a.reshape(3,2)? ? #改變數組形狀,參數是行數和列數,需要匹配原數組的元素數量否則報錯

print(a)

print(b)

?

[0 1 2 3 4 5 6 7]

[[0 1]

?[2 3]

?[4 5]

?[6 7]]

?

(二) flat 數組迭代器?

import numpy

#一維數組可以直接for循環迭代

a = numpy.arange(6)

for x in a:

? ? print(x)

?

b = numpy.arange(6).reshape(3,2)? ? #二維數組

#flat迭代器

for x in b.flat:

? ? print(x)

?

#多重for循環,跟迭代器二者等效

for x in b:?

? ? for y in x:?

? ? ? ? print(y)

?

(三) flatten 深拷貝,同copy()?

ndarray.flatten(order=‘C’) order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘K’ – 元素在內存中的出現順序。?

import numpy

a = numpy.arange(4)

b=a.copy()

c=a.flatten()

?

a[1] = 8

b[0] = 9

?

print(a)

print(b)

print(c)

?

[0 8 2 3]

[9 1 2 3]

[0 1 2 3]

?

(四) ravel 返回數組的視圖,修改會影響原數組?

numpy.ravel(a, order=‘C’) order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘K’ – 元素在內存中的出現順序。?

import numpy

a = numpy.arange(8).reshape(2,4)

b = a.ravel()

c = a.ravel(order = 'F')? ? # 就這個修改不會影響其他的

d = a.ravel(order = 'A')

e = a.ravel(order = 'K')

print(a)

print(b)

print(c)

print(d)

print(e)

?

[[0 1 2 3]

?[4 5 6 7]]

[0 1 2 3 4 5 6 7]

[0 4 1 5 2 6 3 7]

[0 1 2 3 4 5 6 7]

[0 1 2 3 4 5 6 7]

?

注意,修改order='F’模式的時候不會影響其他模式的序列,沒有深究為何,用的時候再找。?

b[4] = 44

c[5] = 55

d[6] = 66

e[7] = 77

print(a)

print(b)

print(c)

print(d)

print(e)

?

[[ 0? 1? 2? 3]

?[44? 5 66 77]]

[ 0? 1? 2? 3 44? 5 66 77]

[ 0? 4? 1? 5? 2 55? 3? 7]

[ 0? 1? 2? 3 44? 5 66 77]

[ 0? 1? 2? 3 44? 5 66 77]

?

(五) transpose 等同于T,翻轉數組行和列?

numpy.transpose(arr, axes) arr:要操作的數組 axes:整數列表,對應維度,通常所有維度都會對換。?

import numpy

a = numpy.arange(6).reshape(2,3)

b = a.transpose()

c = a.T? ? ?#注意寫法

?

print(a)

print(b)

print(c)

?

[[0 1 2]

?[3 4 5]]

[[0 3]

?[1 4]

?[2 5]]

[[0 3]

?[1 4]

?[2 5]]

?

(六) 后面暫時略,以后補完

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540581.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540581.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540581.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

201671010128 2017-09-24《Java程序設計》之繼承

1.繼承的概念及理解: 繼承是java面向對象編程技術的一塊基石,因為它允許創建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法&#xff…

紫外線的形式是什么?

紫外線:紫外線 (UV: Ultraviolet) UV is an abbreviation of Ultraviolet. In RO water purifiers, the bacteria or germs which are present in the water cannot get killed by reverse osmosis process but this process can banish the dissolved solids and i…

[js高手之路] html5 canvas系列教程 - 掌握畫直線圖形的常用API

我們接著上文[js高手之路] html5 canvas系列教程 - 認識canvas以及基本使用方法繼續. 一、直線的繪制 cxt.moveTo( x1, y1 ): 將畫筆移動到x1, y1這個點 cxt.lineTo( x2, y2 ):將畫筆從起點開始畫直線,一直畫到終點坐標( x2, y2 ) cxt.stroke…

金礦問題

Description: 描述: This is a standard interview problem featured in interview coding rounds of Amazon, Flipkart. 這是亞馬遜Flipkart的采訪編碼回合中的標準采訪問題。 Problem statement: 問題陳述: Given a gold mine of n*m dimensions, e…

[轉載] python中的數組類型及特點

參考鏈接: Python中的Array | 數組2(簡介和功能) 名稱 表示方法示例 是否有序 函數方法(增刪等) 特點 List 類型表示:L L [Adam, 95.5, Lisa, 85] 有序 增加:(1)L.append(Paul),增加…

puppet

Puppet前期環境(網絡、解析、yum源、NTP)在上一章節已經準備就緒,接下來我們就開始安裝Puppet了,安裝Puppet其實很簡單,官方已經提供了yum源,只需要自己將所需要的安裝包下載下來然后做成本地yum源即可使用…

[轉載] 【數學問題】利用python求解表達式

參考鏈接: Python 變量 |表達式 |條件和函數 有時候我們會遇到一些很復雜的表達式,或者想要求解某個表達式,但是手動計算的話不但耗時還費精力,我們能不能利用計算機來幫助我們進行計算呢? 1…

cesium廣告牌_公路廣告牌

cesium廣告牌Description: 描述: This is a standard dynamic programing problem of finding maximum profits with some constraints. This can be featured in any interview coding rounds. 這是在某些約束條件下找到最大利潤的標準動態編程問題。 這可以在任何…

你和大牛差了啥

mmp。無時無刻不在想和大牛差在哪里了。別人為什么可以那么牛逼而你tmd那么菜!整個人頓時都頹廢了。啥事兒不想干。后來想了想感情就是他比較黑吧。

[轉載] python數組的使用

參考鏈接: Python中整數的最大可能值是多少? 原文地址為: python數組的使用 python數組的使用 python數組的使用 2010-07-28 17:17 1、Python的數組分三種類型: (1) list 普通的鏈表,初始化后可以通過特定方法…

scala中循環守衛_Scala中的循環

scala中循環守衛Scala中的循環 (Loops in Scala) In programming, many times a condition comes when we need to execute the same statement or block of code more than one time. It could be difficult to write the same code multiple times, so programing language d…

50個必備基礎命令

1.tar創建一個新的tar文件$ tar cvf archive_name.tar dirname/解壓tar文件$ tar xvf archive_name.tar查看tar文件$ tar tvf archive_name.tar2. grep在文件中查找字符串(不區分大小寫)$ grep -i "the" demo_file輸出成功匹配的行,以及該行之后的三行$ g…

NM的完整形式是什么?

NM:無消息 (NM: No Message) NM is an abbreviation of "No Message". NM是“無消息”的縮寫。 It is an expression, which is commonly used in the Gmail platform. It is also written as N/M or n/m or *n/m*. It is written in the subject of the…

[轉載] python中全局變量和局部變量解析

參考鏈接: Python中的全局變量和局部變量 python函數中可以訪問全局變量但是不能給全局變量賦值,除非進行顯式聲明global a 比如定義了全局變量 a 在函數my_fun()中可以直接訪問a的值,而不需要global全局變量申明。下圖為上面代碼運行輸出 …

【iCore4 雙核心板_FPGA】例程十六:基于雙口RAM的ARM+FPGA數據存取實驗

實驗現象: 核心代碼: int main(void) {/* USER CODE BEGIN 1 */int i;int address,data;char error_flag 0;char receive_data[50];char buffer[8];char *p;/* USER CODE END 1 *//* MCU Configuration-----------------------------------------------…

[轉載] Python中TFTP的理解

參考鏈接: Python中的打包pack和拆包unpack參數 Num01–>TFTP協議介紹 TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議) 是TCP/IP協議族中的一個用來在客戶端與服務器之間進行簡單文件傳輸的協議 特點: 1,簡單 2…

gn fast-gn_GN的完整形式是什么?

gn fast-gnGN:晚安 (GN: Good Night) GN is an abbreviation of "Good Night". GN是“ Good Night”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Yahoo Messenge…

從零開始編寫自己的C#框架(27)——什么是開發框架

前言 做為一個程序員,在開發的過程中會發現,有框架同無框架,做起事來是完全不同的概念,關系到開發的效率、程序的健壯、性能、團隊協作、后續功能維護、擴展......等方方面面的事情。很多朋友在學習搭建自己的框架,很多…

[轉載] Python 遞歸 深入理解遞歸 Python遞歸剖析,絕對讓你看懂!

參考鏈接: Python | print()中的結束參數 目錄 遞歸剖析 遞歸的兩個過程 return 返回值 詳解 遞歸思路二分法和遞歸尾遞歸遞歸練習題 遞歸剖析 遞歸真的很重要,之前學的時候,學的一知半解,以為真正了解,每次想到遞歸…

laravel 項目遷移_在Laravel遷移

laravel 項目遷移Before moving forward we need to know some facts about it, 在繼續前進之前,我們需要了解一些事實, Resources: In these directories, we have already a js, lang, sass and view page. Where, sass and js file holf their uncom…