FC2ブログ

[Python][Numpy] numpy.full :要素を指定した値で埋めた配列を生成

Numpyを使用して、要素を指定した値で埋めた配列を生成。

# Python 2.7.15

使用する関数は

numpy.full

Numpyがインストールされていなかったら、インストールをしておく。
macの場合、以下のコマンドでインストール。

■インストールコマンド
$ pip install numpy -I --user

■インストール確認
$ pip show numpy
Name: numpy
Version: 1.15.1




■numpy.full を使用して7を埋めた3x3の配列を生成してみた

>>> import numpy as np
>>> np.full((3,3), '7', dtype=np.int32)
array([[7, 7, 7],
[7, 7, 7],
[7, 7, 7]], dtype=int32)
>>>

ちなみに、文字を埋めてみようとしていくつかエラーを出したのでメモ。
ドキュメントを読めば、出ないエラーなんですがね。。

>>> np.full((3,3), 'a', dtype=np.string)
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'module' object has no attribute 'string'
>>>

numpy に string なんてない、ということ。

dtype自体は string はあるので、以下のように。

>>> np.full((3,3), 'a', dtype=string)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'string' is not defined
>>>

あら、string変数はないよと。。。
'string' に変更。

>>> np.full((3,3), 'a', dtype='string')
array([['a', 'a', 'a'],
['a', 'a', 'a'],
['a', 'a', 'a']], dtype='|S1')
>>>

無事、文字で埋まりました!!

ただ、'abc' 文字列で埋めることはできなかったんですよね。
なぜか、'abc' と指定すると 'a' で埋められました。

機会があれば、文字列のところも調べてみます。




ちなみに numpy.zeros、numpy.ones を使用すれば、
0埋め、1埋めはほんの少しですが簡易的に生成できます。


[Node.js]MongoClientでDB接続しようとしたらエラーになった。。。

MongoClientを使用して以下のようにDB接続してコレクションを取得しようとしたら、警告とエラーが出た。。


MongoClient.connect('mongodb://localhost:20017/hogehoge_db', (error, db) => {

// コレクション取得
var collection = db.collection('sample_collection');


■警告
(node:11789) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.

■エラー
TypeError: db.collection is not a function




警告の方は、丁寧に解決方法を示してくれていますので、 MongoClient.connect()の第2引数に{ useNewUrlParser: true }のオプションを指定してあげれば、Warningは出なくなる。

エラーのほうは、仕様が変わったみたいで使用するDBを明示的に指定しないといけないらしい。

2点を解消したコードは以下。


MongoClient.connect('mongodb://localhost:20017/hogehoge_db', {useNewUrlParser: true}, (error, client) => {

// DBを取得
var db = client.db('hogehoge_db');

// コレクション取得
var collection = db.collection('sample_collection');


(gnome-ssh-askpass:12825): Gtk-WARNING **: cannot open display:

Gitでローカルからリモートリポジトリにアクセスしようとした際、以下の警告が表示されて操作ができなくなってしまった。

(gnome-ssh-askpass:12825): Gtk-WARNING **: cannot open display:

git pull などコマンド叩くと、このメッセージが表示される。。


解決方法は、unsetコマンドを叩けばOK。

$ unset SSH_ASKPASS

これをして、再度リモートリポジトリにアクセスする際にはパスワードを聞かれ、パスワードを入力すれば操作可能となる。

そもそも、鍵を設定しておけば多分このような問題は出ないのだろうけどね・・・

[MongoiDB][Java] MongoCollection::updateOne で更新ができずハマった・・・

MongoDBを使用した開発をしていて、データを更新するコーディングしてたら、
com.mongodb.client.MongoCollection::updateOne で update処理動かしてもデータが更新されない・・・

第一引数に更新条件のFiIterを設定して、第二引数に更新データをセット。
なんども、更新用データを確認したが反映されない。。。
試しにfindすると、条件で抽出できているのでFilterには問題なさそう。

エラーも出てない。。。

結局は、更新用データに org.bson.Document を使用していたからみらい。
なので、”replaceOne(Bson filter, TDocument replacement)” のほうを使用して無事更新することができました。。

updateOne(Bson filter, Bson update)は更新データの型はBsonでした。
Documentでも大丈夫かと思いましたが、ダメだったみたいです・・・

[参考]
APIリファレンス
http://api.mongodb.com/java/current/com/mongodb/client/MongoCollection.html

[iPhone7] アプリが削除できない・・・

iPhoneでアプリを削除するには、通常ホーム画面でアプリをロングタップするとアイコンが震えて、アイコンの左上に「×」アイコンが表示され、それをタップするとアプリが削除される。

しかし、今回、ロングタップしても削除モードにならないというアクシデントにハマったので原因と削除対応方法。


原因から言ってしまうと、タップが強く押しすぎていたみたい。
軽く押してロングタップしたら、削除モードになり、アプリがプルプルして「×」アイコンがでました!!

一応、少し調べたので、他のケースや削除方法を書いておきます。


■削除機能に機能制限がかかっている場合

設定の機能制限でアプリを削除できなくすることができるらしい。
この設定がオンになっていないかの確認も重要。

制限解除は「設定」-「一般」ー「機能制限」と遷移。
「Appの削除」のチェックを「オン」にする。

iPhone機能制限設定画面


■設定からアプリを削除する場合

「設定」ー「一般「ストレージとiCloudの使用状況」ー「ストレージ管理」と遷移。
削除したいアプリを選択して「Appを削除」ボタンを押下する。
削除確認が表示されるので、「Appを削除」を選択すると端末からアプリが消える。









プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter